diff --git a/app/core/tests/unit/ticket_comment_solution/__init__.py b/app/core/tests/unit/ticket_comment_solution/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/app/core/tests/unit/ticket_comment_solution/conftest.py b/app/core/tests/unit/ticket_comment_solution/conftest.py new file mode 100644 index 00000000..0b91e73a --- /dev/null +++ b/app/core/tests/unit/ticket_comment_solution/conftest.py @@ -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 diff --git a/app/core/tests/unit/ticket_comment_solution/test_unit_ticket_comment_solution_model.py b/app/core/tests/unit/ticket_comment_solution/test_unit_ticket_comment_solution_model.py new file mode 100644 index 00000000..516688b0 --- /dev/null +++ b/app/core/tests/unit/ticket_comment_solution/test_unit_ticket_comment_solution_model.py @@ -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