From abdcea07a68ca587b75c1118449e0ab3921c9b68 Mon Sep 17 00:00:00 2001 From: Jon Date: Mon, 9 Jun 2025 09:45:13 +0930 Subject: [PATCH] test(core): Add TicketCategory Unit model test suite ref: #807 #797 --- .../tests/unit/ticket_category/conftest.py | 19 +++ .../test_unit_ticket_category_model.py | 109 ++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 app/core/tests/unit/ticket_category/conftest.py create mode 100644 app/core/tests/unit/ticket_category/test_unit_ticket_category_model.py diff --git a/app/core/tests/unit/ticket_category/conftest.py b/app/core/tests/unit/ticket_category/conftest.py new file mode 100644 index 00000000..810b7d44 --- /dev/null +++ b/app/core/tests/unit/ticket_category/conftest.py @@ -0,0 +1,19 @@ +import pytest + + + +@pytest.fixture( scope = 'class') +def model(model_ticketcategory): + + yield model_ticketcategory + + +@pytest.fixture( scope = 'class', autouse = True) +def model_kwargs(request, kwargs_ticketcategory): + + request.cls.kwargs_create_item = kwargs_ticketcategory.copy() + + yield kwargs_ticketcategory.copy() + + if hasattr(request.cls, 'kwargs_create_item'): + del request.cls.kwargs_create_item diff --git a/app/core/tests/unit/ticket_category/test_unit_ticket_category_model.py b/app/core/tests/unit/ticket_category/test_unit_ticket_category_model.py new file mode 100644 index 00000000..30dfaf90 --- /dev/null +++ b/app/core/tests/unit/ticket_category/test_unit_ticket_category_model.py @@ -0,0 +1,109 @@ +import pytest + +from django.db import models + + +from core.tests.unit.centurion_abstract.test_unit_centurion_abstract_model import ( + CenturionAbstractModelInheritedCases +) + + + +@pytest.mark.model_ticketcategory +class TicketCategoryModelTestCases( + CenturionAbstractModelInheritedCases +): + + + @property + def parameterized_class_attributes(self): + + return { + 'model_tag': { + 'type': str, + 'value': 'ticket_category' + }, + } + + + parameterized_model_fields = { + 'parent': { + 'blank': True, + 'default': models.fields.NOT_PROVIDED, + 'field_type': models.ForeignKey, + 'null': True, + 'unique': False, + }, + 'name': { + 'blank': False, + 'default': models.fields.NOT_PROVIDED, + 'field_type': models.CharField, + 'max_length': 50, + 'null': False, + 'unique': False, + }, + 'runbook': { + 'blank': True, + 'default': models.fields.NOT_PROVIDED, + 'field_type': models.ForeignKey, + 'null': True, + 'unique': False, + }, + 'change': { + 'blank': False, + 'default': True, + 'field_type': models.BooleanField, + 'null': False, + 'unique': False, + }, + 'incident': { + 'blank': False, + 'default': True, + 'field_type': models.BooleanField, + 'null': False, + 'unique': False, + }, + 'problem': { + 'blank': False, + 'default': True, + 'field_type': models.BooleanField, + 'null': False, + 'unique': False, + }, + 'project_task': { + 'blank': False, + 'default': True, + 'field_type': models.BooleanField, + 'null': False, + 'unique': False, + }, + 'request': { + 'blank': False, + 'default': True, + 'field_type': models.BooleanField, + 'null': False, + 'unique': False, + }, + 'modified': { + 'blank': False, + 'default': models.fields.NOT_PROVIDED, + 'field_type': models.DateTimeField, + 'null': False, + 'unique': False, + }, + } + + + +class TicketCategoryModelInheritedCases( + TicketCategoryModelTestCases, +): + pass + + + +@pytest.mark.module_core +class TicketCategoryModelPyTest( + TicketCategoryModelTestCases, +): + pass