test(core): Unit Model Checks for TicketCommentSolution

ref: #744 #728
This commit is contained in:
2025-05-09 16:11:59 +09:30
parent d037150eb3
commit 580820ef44
3 changed files with 98 additions and 0 deletions

View File

@ -0,0 +1,14 @@
import pytest
from core.models.ticket_comment_solution import TicketCommentSolution
@pytest.fixture( scope = 'class')
def model(request):
request.cls.model = TicketCommentSolution
yield request.cls.model
del request.cls.model

View File

@ -0,0 +1,84 @@
import pytest
from rest_framework.exceptions import ValidationError
from core.models.ticket_comment_solution import TicketCommentSolution
from core.tests.unit.ticket_comment_base.test_unit_ticket_comment_base_model import (
TicketCommentBaseModelInheritedCases
)
class TicketCommentSolutionModelTestCases(
TicketCommentBaseModelInheritedCases,
):
sub_model_type = 'solution'
"""Sub Model Type
sub-models must have this attribute defined in `ModelName.Meta.sub_model_type`
"""
kwargs_create_item: dict = {
'comment_type': sub_model_type,
}
def test_class_inherits_ticketcommentsolution(self):
""" Class inheritence
TenancyObject must inherit SaveHistory
"""
assert issubclass(self.model, TicketCommentSolution)
def test_function_called_clean_ticketcommentsolution(self, model, mocker, ticket):
"""Function Check
Ensure function `TicketCommentBase.clean` is called
"""
spy = mocker.spy(TicketCommentSolution, 'clean')
valid_data = self.kwargs_create_item.copy()
valid_data['ticket'] = ticket
del valid_data['external_system']
del valid_data['external_ref']
model.objects.create(
**valid_data
)
assert spy.assert_called_once
class TicketCommentSolutionModelInheritedCases(
TicketCommentSolutionModelTestCases,
):
"""Sub-Ticket Test Cases
Test Cases for Ticket models that inherit from model TicketCommentSolution
"""
kwargs_create_item: dict = {}
model = None
sub_model_type = None
"""Ticket Sub Model Type
Ticket sub-models must have this attribute defined in `ModelNam.Meta.sub_model_type`
"""
class TicketCommentSolutionModelPyTest(
TicketCommentSolutionModelTestCases,
):
pass