mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
110 lines
4.1 KiB
Python
110 lines
4.1 KiB
Python
from django.conf import settings
|
|
from django.db import router
|
|
from django.test.utils import override_settings
|
|
|
|
from sentry.models.organization import Organization
|
|
from sentry.models.organizationmapping import OrganizationMapping
|
|
from sentry.models.project import Project
|
|
from sentry.models.projectkey import ProjectKey
|
|
from sentry.models.team import Team
|
|
from sentry.models.user import User
|
|
from sentry.receivers.core import DEFAULT_SENTRY_PROJECT_ID, create_default_projects
|
|
from sentry.silo import unguarded_write
|
|
from sentry.testutils.cases import TestCase
|
|
from sentry.testutils.silo import assume_test_silo_mode_of, region_silo_test
|
|
|
|
|
|
@region_silo_test
|
|
class CreateDefaultProjectsTest(TestCase):
|
|
@override_settings(SENTRY_PROJECT=1)
|
|
def test_simple(self):
|
|
with assume_test_silo_mode_of(User):
|
|
user, _ = User.objects.get_or_create(is_superuser=True, defaults={"username": "test"})
|
|
Organization.objects.all().delete()
|
|
|
|
with (
|
|
assume_test_silo_mode_of(OrganizationMapping),
|
|
unguarded_write(using=router.db_for_write(OrganizationMapping)),
|
|
):
|
|
OrganizationMapping.objects.all().delete()
|
|
Team.objects.filter(slug="sentry").delete()
|
|
Project.objects.filter(id=settings.SENTRY_PROJECT).delete()
|
|
|
|
create_default_projects()
|
|
project = Project.objects.get(id=settings.SENTRY_PROJECT)
|
|
assert project.public is False
|
|
assert project.name == "Internal"
|
|
assert project.slug == "internal"
|
|
team = project.teams.first()
|
|
assert team.slug == "sentry"
|
|
|
|
pk = ProjectKey.objects.get(project=project)
|
|
assert not pk.roles.api
|
|
assert pk.roles.store
|
|
assert "dynamicSdkLoaderOptions" in pk.data
|
|
assert pk.data["dynamicSdkLoaderOptions"] == {
|
|
"hasPerformance": True,
|
|
"hasReplay": True,
|
|
}
|
|
|
|
# ensure that we don't hit an error here
|
|
create_default_projects()
|
|
|
|
@override_settings(SENTRY_PROJECT=1)
|
|
def test_without_user(self):
|
|
with assume_test_silo_mode_of(User):
|
|
User.objects.filter(is_superuser=True).delete()
|
|
with unguarded_write(using=router.db_for_write(Team)):
|
|
Team.objects.filter(slug="sentry").delete()
|
|
Project.objects.filter(id=settings.SENTRY_PROJECT).delete()
|
|
|
|
create_default_projects()
|
|
|
|
project = Project.objects.get(id=settings.SENTRY_PROJECT)
|
|
assert project.public is False
|
|
assert project.name == "Internal"
|
|
assert project.slug == "internal"
|
|
team = project.teams.first()
|
|
assert team.slug == "sentry"
|
|
|
|
pk = ProjectKey.objects.get(project=project)
|
|
assert not pk.roles.api
|
|
assert pk.roles.store
|
|
assert "dynamicSdkLoaderOptions" in pk.data
|
|
assert pk.data["dynamicSdkLoaderOptions"] == {
|
|
"hasPerformance": True,
|
|
"hasReplay": True,
|
|
}
|
|
|
|
# ensure that we don't hit an error here
|
|
create_default_projects()
|
|
|
|
def test_no_sentry_project(self):
|
|
with self.settings(SENTRY_PROJECT=None):
|
|
with assume_test_silo_mode_of(User):
|
|
User.objects.filter(is_superuser=True).delete()
|
|
with unguarded_write(using=router.db_for_write(Team)):
|
|
Team.objects.filter(slug="sentry").delete()
|
|
Project.objects.filter(id=DEFAULT_SENTRY_PROJECT_ID).delete()
|
|
|
|
create_default_projects()
|
|
|
|
project = Project.objects.get(id=DEFAULT_SENTRY_PROJECT_ID)
|
|
assert project.public is False
|
|
assert project.name == "Internal"
|
|
assert project.slug == "internal"
|
|
team = project.teams.first()
|
|
assert team.slug == "sentry"
|
|
|
|
pk = ProjectKey.objects.get(project=project)
|
|
assert not pk.roles.api
|
|
assert pk.roles.store
|
|
assert "dynamicSdkLoaderOptions" in pk.data
|
|
assert pk.data["dynamicSdkLoaderOptions"] == {
|
|
"hasPerformance": True,
|
|
"hasReplay": True,
|
|
}
|
|
|
|
# ensure that we don't hit an error here
|
|
create_default_projects()
|