refactor(itim): Update Test Suite for SLMTicket model

ref: #871 #868
This commit is contained in:
2025-07-15 21:51:05 +09:30
parent 739cefbf1c
commit 645baa24d9
10 changed files with 111 additions and 57 deletions

View File

@ -1,6 +1,5 @@
import datetime
import pytest
import django
from django.db import models
from django.db.models.query import QuerySet
@ -723,7 +722,7 @@ class TicketBaseModelTestCases(
assert type(ticket.get_related_field_name()) is str
def test_function_get_related_field_name_value(self, model):
def test_function_get_related_field_name_value(self, model, ticket):
"""Function test
Ensure that function `get_related_field_name` returns a string that is
@ -731,7 +730,7 @@ class TicketBaseModelTestCases(
"""
ticket = model.objects.get(
pk = self.item.pk
pk = ticket.pk
)
assert(
@ -740,7 +739,7 @@ class TicketBaseModelTestCases(
)
def test_function_get_related_model_type(self, model):
def test_function_get_related_model_type(self, model, ticket):
"""Function test
Ensure that function `get_related_model` returns a value that
@ -748,7 +747,7 @@ class TicketBaseModelTestCases(
"""
ticket = model.objects.get(
pk = self.item.pk
pk = ticket.pk
)
assert type(ticket.get_related_model()) is model

View File

@ -1,4 +1,4 @@
from django.test import TestCase
import pytest
from core.tests.functional.ticket_base.test_functional_ticket_base_metadata import TicketBaseMetadataInheritedCases
@ -6,6 +6,7 @@ from itim.models.slm_ticket_base import SLMTicket
@pytest.mark.model_slmticket
class MetadataTestCases(
TicketBaseMetadataInheritedCases,
):

View File

@ -1,7 +1,10 @@
import pytest
from core.tests.functional.ticket_base.test_functional_ticket_base_serializer import TicketBaseSerializerInheritedCases
@pytest.mark.model_slmticket
class SLMTicketSerializerTestCases(
TicketBaseSerializerInheritedCases,
):
@ -38,6 +41,7 @@ class SLMTicketSerializerInheritedCases(
@pytest.mark.module_itim
class SLMTicketSerializerPyTest(
SLMTicketSerializerTestCases,
):

View File

@ -1,4 +1,4 @@
from django.test import TestCase
import pytest
from core.tests.functional.ticket_base.test_functional_ticket_base_viewset import TicketBaseViewSetInheritedCases
@ -7,6 +7,7 @@ from itim.models.slm_ticket_base import SLMTicket
@pytest.mark.model_slmticket
class ViewSetTestCases(
TicketBaseViewSetInheritedCases,
):

View File

@ -1,13 +1,23 @@
import pytest
from itim.models.slm_ticket_base import SLMTicket
@pytest.fixture( scope = 'class')
def model(request):
def model(request, model_slmticket):
request.cls.model = SLMTicket
request.cls.model = model_slmticket
yield request.cls.model
del request.cls.model
@pytest.fixture( scope = 'class', autouse = True)
def model_kwargs(request, kwargs_slmticket):
request.cls.kwargs_create_item = kwargs_slmticket.copy()
yield kwargs_slmticket.copy()
if hasattr(request.cls, 'kwargs_create_item'):
del request.cls.kwargs_create_item

View File

@ -1,9 +1,12 @@
import pytest
from core.tests.unit.ticket_base.test_unit_ticket_base_api_fields import (
TicketBaseAPIInheritedCases,
)
@pytest.mark.model_slmticket
class TicketSLMAPITestCases(
TicketBaseAPIInheritedCases,
):
@ -24,6 +27,7 @@ class TicketSLMAPITestCases(
@pytest.mark.module_itim
class TicketSLMAPIInheritedCases(
TicketSLMAPITestCases,
):

View File

@ -1,3 +1,5 @@
import pytest
from django.db import models
from core.tests.unit.ticket_base.test_unit_ticket_base_model import TicketBaseModelInheritedCases
@ -6,77 +8,79 @@ from itim.models.slm_ticket_base import SLMTicket
@pytest.mark.model_slmticket
class SLMTicketModelTestCases(
TicketBaseModelInheritedCases,
TicketBaseModelInheritedCases
):
kwargs_create_item: dict = {
'tto': 1,
'ttr': 2,
}
parameterized_fields: dict = {
"tto": {
'field_type': models.fields.IntegerField,
'field_parameter_default_exists': True,
'field_parameter_default_value': 0,
'field_parameter_verbose_name_type': str
},
"ttr": {
'field_type': models.fields.IntegerField,
'field_parameter_default_exists': True,
'field_parameter_default_value': 0,
'field_parameter_verbose_name_type': str
},
}
@property
def parameterized_class_attributes(self):
sub_model_type = 'slm'
return {
'_audit_enabled': {
'value': False
},
'_notes_enabled': {
'value': False
},
'_is_submodel': {
'value': True
},
'model_tag': {
'type': str,
'value': 'ticket'
},
'url_model_name': {
'type': str,
'value': 'ticket'
},
}
def test_class_inherits_slmticket(self):
@property
def parameterized_model_fields(self):
return {
"tto": {
'blank': True,
'default': 0,
'field_type': models.fields.IntegerField,
'null': False,
'unique': False,
},
"ttr": {
'blank': True,
'default': 0,
'field_type': models.fields.IntegerField,
'null': False,
'unique': False,
},
}
def test_class_inherits_SLMTicket(self, model):
""" Class inheritence
TenancyObject must inherit SaveHistory
"""
assert issubclass(self.model, SLMTicket)
def test_function_get_ticket_type(self):
"""Function test
As this model is not intended to be used alone.
Ensure that function `get_ticket_type` returns None for model
`SLMTicket`
"""
assert self.model().get_ticket_type == None
assert issubclass(model, SLMTicket)
class SLMTicketModelInheritedCases(
SLMTicketModelTestCases,
):
"""Sub-Ticket Test Cases
Test Cases for Ticket models that inherit from model SLMTicket
"""
kwargs_create_item: dict = None
model = None
sub_model_type = None
"""Ticket Sub Model Type
Ticket sub-models must have this attribute defined in `ModelNam.Meta.sub_model_type`
"""
@pytest.mark.module_itim
class SLMTicketModelPyTest(
SLMTicketModelTestCases,
):
pass
sub_model_type = 'slm'

View File

@ -243,6 +243,11 @@ from .model_service import (
model_service,
)
from .model_slmticket import (
kwargs_slmticket,
model_slmticket,
)
from .model_software import (
kwargs_software,
model_software,

25
app/tests/fixtures/model_slmticket.py vendored Normal file
View File

@ -0,0 +1,25 @@
import datetime
import pytest
from itim.models.slm_ticket_base import SLMTicket
@pytest.fixture( scope = 'class')
def model_slmticket(request):
yield SLMTicket
@pytest.fixture( scope = 'class')
def kwargs_slmticket(kwargs_ticketbase,
):
kwargs = {
**kwargs_ticketbase,
'tto': 1,
'ttr': 2,
}
yield kwargs.copy()

View File

@ -1140,6 +1140,7 @@ markers = [
"model_role: Selects tests for model Role.",
"model_service: Selects tests for model Service.",
"model_software: Selects tests for model Software.",
"model_slmticket: Selects tests for model SLMTicket.",
"model_softwarecategory: Selects tests for model Software Category.",
"model_softwareenablefeatureflag: Selects tests for model Software Enabled Feature Flag.",
"model_softwareversion: Selects tests for model Software Version.",