refactor(project_management): Serializer Unit Test Suite re-written to Pytest for model ProjectState

ref: #938 #936
This commit is contained in:
2025-08-04 15:45:30 +09:30
parent 9cde656450
commit 3f08bf532f
5 changed files with 115 additions and 88 deletions

View File

@ -1,8 +1,14 @@
import datetime
import pytest
from project_management.models.project_states import ProjectState
from django.db import models
from project_management.models.project_states import ProjectState
from project_management.serializers.project_states import (
ProjectStateBaseSerializer,
ProjectStateModelSerializer,
ProjectStateViewSerializer,
)
@pytest.fixture( scope = 'class')
@ -12,18 +18,47 @@ def model_projectstate():
@pytest.fixture( scope = 'class')
def kwargs_projectstate(kwargs_centurionmodel):
def kwargs_projectstate(kwargs_centurionmodel, django_db_blocker,
model_knowledgebase, kwargs_knowledgebase,
):
random_str = str(datetime.datetime.now(tz=datetime.timezone.utc))
random_str = str(random_str).replace(
' ', '').replace(':', '').replace('+', '').replace('.', '')
with django_db_blocker.unblock():
kwargs = kwargs_knowledgebase
team = kwargs['target_team']
del kwargs['target_team']
runbook = model_knowledgebase.objects.create( **kwargs )
runbook.target_team.add( team[0] )
kwargs = kwargs_centurionmodel.copy()
del kwargs['model_notes']
kwargs = {
**kwargs,
'name': 'projectstate_' + random_str,
'runbook': runbook,
}
yield kwargs.copy()
with django_db_blocker.unblock():
try:
runbook.delete()
except models.deletion.ProtectedError:
pass
@pytest.fixture( scope = 'class')
def serializer_projectstate():
yield {
'base': ProjectStateBaseSerializer,
'model': ProjectStateModelSerializer,
'view': ProjectStateViewSerializer
}