refactor(project_management): API Metadata Functional Test Suite re-written to Pytest for model ProjectState

ref: #938 #936
This commit is contained in:
2025-08-04 15:44:44 +09:30
parent 6eb4cb12ba
commit 4045f0cffb
5 changed files with 44 additions and 102 deletions

View File

@ -262,7 +262,13 @@ class TicketBaseModelTestCases(
ticket = model.objects.create( **kwargs )
project_one = model_project.objects.create( **kwargs_project )
kwargs_proj = kwargs_project.copy()
team_members = kwargs_proj['team_members']
del kwargs_proj['team_members']
del kwargs_proj['code']
project_one = model_project.objects.create( **kwargs_proj )
project_one.team_members.add( team_members[0] )
kwargs = kwargs_projectmilestone
@ -271,7 +277,12 @@ class TicketBaseModelTestCases(
kwargs = kwargs_project
kwargs['name'] = 'project_two'
team_members = kwargs['team_members']
del kwargs['team_members']
del kwargs['code']
project_two = model_project.objects.create( **kwargs )
project_two.team_members.add( team_members[0] )
kwargs = kwargs_projectmilestone
kwargs['name'] = 'two'

View File

@ -15,88 +15,6 @@ class ProjectMilestoneAPITestCases(
APIFieldsInheritedCases,
):
# @pytest.fixture( scope = 'class')
# def second_model(self, request, django_db_blocker,
# model, model_kwargs,
# model_team, kwargs_team
# ):
# item = None
# with django_db_blocker.unblock():
# kwargs_many_to_many = {}
# kwargs = {}
# for key, value in model_kwargs.items():
# field = model._meta.get_field(key)
# if isinstance(field, models.ManyToManyField):
# kwargs_many_to_many.update({
# key: value
# })
# else:
# kwargs.update({
# key: value
# })
# # # Switch model fields so all fields can be checked
# # kwargs_many_to_many.update({ 'devices': kwargs_many_to_many['nodes']})
# # del kwargs_many_to_many['nodes']
# # # del kwargs_many_to_many['target_team']
# # kwargs.update({ 'parent_projectmilestone': self.item})
# del kwargs['manager_user']
# manager_team = model_team.objects.create( **kwargs_team )
# kwargs['manager_team'] = manager_team
# kwargs['external_ref'] = 1
# kwargs['external_system'] = 1
# kwargs['name'] = 'pro two'
# del kwargs['code']
# item_two = model.objects.create(
# **kwargs
# )
# for key, value in kwargs_many_to_many.items():
# field = getattr(item_two, key)
# for entry in value:
# field.add(entry)
# request.cls.item_two = item_two
# yield item_two
# with django_db_blocker.unblock():
# item_two.delete()
# manager_team.delete()
# del request.cls.item_two
# @pytest.fixture( scope = 'class', autouse = True)
# def class_setup(self,
# create_model,
# second_model,
# make_request,
# ):
# pass
@property
def parameterized_api_fields(self):

View File

@ -7,22 +7,22 @@ from core.tests.functional.centurion_abstract.test_functional_centurion_abstract
@pytest.mark.model_project
class ProjectModelTestCases(
class ProjectMilestoneModelTestCases(
CenturionAbstractModelInheritedCases
):
pass
class ProjectModelInheritedCases(
ProjectModelTestCases,
class ProjectMilestoneModelInheritedCases(
ProjectMilestoneModelTestCases,
):
pass
@pytest.mark.module_project_management
class ProjectModelPyTest(
ProjectModelTestCases,
class ProjectMilestoneModelPyTest(
ProjectMilestoneModelTestCases,
):
pass

View File

@ -0,0 +1,25 @@
import pytest
@pytest.fixture( scope = 'class')
def model(model_projectstate):
yield model_projectstate
@pytest.fixture( scope = 'class', autouse = True)
def model_kwargs(request, kwargs_projectstate):
request.cls.kwargs_create_item = kwargs_projectstate.copy()
yield kwargs_projectstate.copy()
if hasattr(request.cls, 'kwargs_create_item'):
del request.cls.kwargs_create_item
@pytest.fixture( scope = 'class')
def model_serializer(serializer_projectstate):
yield serializer_projectstate

View File

@ -9,8 +9,6 @@ from access.models.tenant import Tenant as Organization
from access.models.team import Team
from access.models.team_user import TeamUsers
from api.tests.abstract.api_permissions_viewset import APIPermissions
from api.tests.abstract.api_serializer_viewset import SerializersTestCases
from api.tests.abstract.test_metadata_functional import MetadataAttributesFunctional
from project_management.models.project_states import ProjectState
@ -21,6 +19,7 @@ User = django.contrib.auth.get_user_model()
@pytest.mark.model_projectstate
class ViewSetBase:
model = ProjectState
@ -216,18 +215,7 @@ class ViewSetBase:
class ProjectStatePermissionsAPI(ViewSetBase, APIPermissions, TestCase):
pass
class ProjectStateViewSet(ViewSetBase, SerializersTestCases, TestCase):
pass
@pytest.mark.module_project_management
class ProjectStateMetadata(
ViewSetBase,
MetadataAttributesFunctional,