refactor(tests): Create global model fixtures

ref: #780 #729
This commit is contained in:
2025-05-31 10:44:17 +09:30
parent 66d14ea5bb
commit 1d31a259df
47 changed files with 820 additions and 358 deletions

View File

@ -11,9 +11,9 @@ from django.test import (
TestCase
)
from access.models.tenant import Tenant
from tests.fixtures import *
from settings.models.app_settings import AppSettings
from access.models.tenant import Tenant
User = django.contrib.auth.get_user_model()
@ -270,15 +270,6 @@ def pytest_generate_tests(metafunc):
@pytest.fixture( scope = 'class')
def content_type():
from django.contrib.contenttypes.models import ContentType
yield ContentType
@pytest.fixture( scope = 'class')
def create_model(request, django_db_blocker):
@ -591,17 +582,6 @@ def organization_three(django_db_blocker):
@pytest.fixture( scope = 'class')
def permission():
from django.contrib.auth.models import (
Permission,
)
yield Permission
@pytest.fixture
def recursearray() -> dict[dict, str, any]:
"""Recursive dict lookup
@ -776,15 +756,12 @@ def fake_view():
@pytest.fixture(scope = 'class')
def user(django_db_blocker):
def user(django_db_blocker, model_user, kwargs_user):
with django_db_blocker.unblock():
random_str = str(datetime.datetime.now(tz=datetime.timezone.utc))
user = User.objects.create(
username="test_user-" + random_str,
password="password"
user = model_user.objects.create(
**kwargs_user
)
yield user
@ -795,176 +772,4 @@ def user(django_db_blocker):
@pytest.fixture( scope = 'class')
def api_user_permissions( django_db_blocker,
content_type,
model,
organization_one,
organization_two,
organization_three,
permission,
):
with django_db_blocker.unblock():
random_str = datetime.datetime.now(tz=datetime.timezone.utc)
app_settings = AppSettings.objects.get(
owner_organization = None
)
app_settings.global_organization = organization_three
app_settings.save()
add_permissions = permission.objects.get(
codename = 'add_' + model._meta.model_name,
content_type = content_type.objects.get(
app_label = model._meta.app_label,
model = model._meta.model_name,
)
)
add_team = Team.objects.create(
team_name = 'add_team' + str(random_str),
organization = organization_one,
)
add_team.permissions.set([add_permissions])
add_user = User.objects.create_user(username="test_user_add" + str(random_str), password="password")
TeamUsers.objects.create(
team = add_team,
user = add_user
)
change_permissions = permission.objects.get(
codename = 'change_' + model._meta.model_name,
content_type = content_type.objects.get(
app_label = model._meta.app_label,
model = model._meta.model_name,
)
)
change_team = Team.objects.create(
team_name = 'change_team' + str(random_str),
organization = organization_one,
)
change_team.permissions.set([change_permissions])
change_user = User.objects.create_user(username="test_user_change" + str(random_str), password="password")
TeamUsers.objects.create(
team = change_team,
user = change_user
)
delete_permissions = permission.objects.get(
codename = 'delete_' + model._meta.model_name,
content_type = content_type.objects.get(
app_label = model._meta.app_label,
model = model._meta.model_name,
)
)
delete_team = Team.objects.create(
team_name = 'delete_team' + str(random_str),
organization = organization_one,
)
delete_team.permissions.set([delete_permissions])
delete_user = User.objects.create_user(username="test_user_delete" + str(random_str), password="password")
TeamUsers.objects.create(
team = delete_team,
user = delete_user
)
view_permissions = permission.objects.get(
codename = 'view_' + model._meta.model_name,
content_type = content_type.objects.get(
app_label = model._meta.app_label,
model = model._meta.model_name,
)
)
view_team = Team.objects.create(
team_name = 'view_team' + str(random_str),
organization = organization_one,
)
view_team.permissions.set([view_permissions])
view_user = User.objects.create_user(username="test_user_view" + str(random_str), password="password")
TeamUsers.objects.create(
team = view_team,
user = view_user
)
different_organization_user = User.objects.create_user(username="test_diff_org_user" + str(random_str), password="password")
different_organization_team = Team.objects.create(
team_name = 'diff_org_team' + str(random_str),
organization = organization_two,
)
different_organization_team.permissions.set([
view_permissions,
add_permissions,
change_permissions,
delete_permissions,
])
TeamUsers.objects.create(
team = different_organization_team,
user = different_organization_user
)
yield {
'app_settings': app_settings,
'tenancy': {
'different': organization_two,
'global': organization_three,
'user': organization_one
},
'user': {
'add': add_user,
'change': change_user,
'delete': delete_user,
'different_tenancy': different_organization_user,
'view': view_user,
}
}
add_team.delete()
add_user.delete()
change_team.delete()
change_user.delete()
delete_team.delete()
delete_user.delete()
view_team.delete()
view_user.delete()
different_organization_team.delete()
different_organization_user.delete()