From 0a35a32136db7fc273f5972ca950ed7276c97d68 Mon Sep 17 00:00:00 2001 From: Jon Date: Sun, 25 May 2025 02:58:23 +0930 Subject: [PATCH] test(core): Initial Unit Model Test Cases for CenturionAuditMeta Model ref: #772 #759 --- .../test_unit_centurion_audit_model.py | 19 ++++-- .../unit/centurion_audit_meta/conftest.py | 10 +++ .../test_unit_centurion_audit_meta_model.py | 68 +++++++++++++++++++ app/core/tests/unit/meta_abstract/conftest.py | 14 ---- .../test_unit_meta_abstract_model.py | 38 ----------- 5 files changed, 93 insertions(+), 56 deletions(-) create mode 100644 app/core/tests/unit/centurion_audit_meta/conftest.py create mode 100644 app/core/tests/unit/centurion_audit_meta/test_unit_centurion_audit_meta_model.py delete mode 100644 app/core/tests/unit/meta_abstract/conftest.py delete mode 100644 app/core/tests/unit/meta_abstract/test_unit_meta_abstract_model.py diff --git a/app/core/tests/unit/centurion_audit/test_unit_centurion_audit_model.py b/app/core/tests/unit/centurion_audit/test_unit_centurion_audit_model.py index 425ed864..763086ce 100644 --- a/app/core/tests/unit/centurion_audit/test_unit_centurion_audit_model.py +++ b/app/core/tests/unit/centurion_audit/test_unit_centurion_audit_model.py @@ -83,10 +83,21 @@ class CenturionAuditModelTestCases( with django_db_blocker.unblock(): - content_type = ContentType.objects.get( - app_label = model._meta.app_label, - model = model._meta.model_name, - ) + try: + + content_type = ContentType.objects.get( + app_label = model._meta.app_label, + model = model._meta.model_name, + ) + + except ContentType.DoesNotExist: + # Enable Abstract models to be tested + + content_type = ContentType.objects.get( + pk = 1, + ) + + self.kwargs_create_item.update({ 'content_type': content_type, diff --git a/app/core/tests/unit/centurion_audit_meta/conftest.py b/app/core/tests/unit/centurion_audit_meta/conftest.py new file mode 100644 index 00000000..267edc2f --- /dev/null +++ b/app/core/tests/unit/centurion_audit_meta/conftest.py @@ -0,0 +1,10 @@ +import pytest + +from core.models.audit import AuditMetaModel + + + +@pytest.fixture( scope = 'class') +def model(request): + + yield AuditMetaModel diff --git a/app/core/tests/unit/centurion_audit_meta/test_unit_centurion_audit_meta_model.py b/app/core/tests/unit/centurion_audit_meta/test_unit_centurion_audit_meta_model.py new file mode 100644 index 00000000..f9e3059b --- /dev/null +++ b/app/core/tests/unit/centurion_audit_meta/test_unit_centurion_audit_meta_model.py @@ -0,0 +1,68 @@ +import pytest + +from core.tests.unit.centurion_sub_abstract.test_unit_centurion_sub_abstract_model import ( + CenturionSubAbstractModelInheritedCases, +) +from core.tests.unit.centurion_audit.test_unit_centurion_audit_model import ( + CenturionAuditModelInheritedCases, +) + + + +@pytest.mark.models +class MetaAbstractModelTestCases( + CenturionSubAbstractModelInheritedCases, + CenturionAuditModelInheritedCases +): + pass + # parameterized_class_attributes = { + # '_audit_enabled': { + # 'value': False, + # }, + # '_notes_enabled': { + # 'value': False, + # } + # } + + + + # check models with model._audit_enabled=True have a model created + + # check models with model._audit_enabled=False DONT have a model created + + # check the Meta class has the correct attributes + + + # confirm it exists in sys.modules + + # check they inherit form audithistory parent class + + + +class MetaAbstractModelInheritedCases( + MetaAbstractModelTestCases, +): + + pass + + + +class MetaAbstractModelPyTest( + MetaAbstractModelTestCases, +): + + def test_model_is_abstract(self, model): + + assert model._meta.abstract + + def test_model_not_proxy(self, model): + + assert not model._meta.proxy + + + def test_model_creation(self): + """ + This test is a duplicate of a test with the same name. As this model + is an abstract model this test is not required. + """ + pass diff --git a/app/core/tests/unit/meta_abstract/conftest.py b/app/core/tests/unit/meta_abstract/conftest.py deleted file mode 100644 index d95a420c..00000000 --- a/app/core/tests/unit/meta_abstract/conftest.py +++ /dev/null @@ -1,14 +0,0 @@ -# import pytest - -# from core.models.meta import BaseMetaModel - - - -# @pytest.fixture( scope = 'class') -# def model(request): - -# request.cls.model = BaseMetaModel - -# yield request.cls.model - -# del request.cls.model diff --git a/app/core/tests/unit/meta_abstract/test_unit_meta_abstract_model.py b/app/core/tests/unit/meta_abstract/test_unit_meta_abstract_model.py deleted file mode 100644 index 77a91d81..00000000 --- a/app/core/tests/unit/meta_abstract/test_unit_meta_abstract_model.py +++ /dev/null @@ -1,38 +0,0 @@ -import pytest - - -@pytest.mark.models -class MetaAbstractModelTestCases: - - - # @pytest.fixture( scope = 'class', autouse = True) - # def setup_class(cls, model): - # - pass - - - # check models with model._audit_enabled=True have a model created - - # check models with model._audit_enabled=False DONT have a model created - - # check the Meta class has the correct attributes - - - # confirm it exists in sys.modules - - # check they inherit form audithistory parent class - - - -class MetaAbstractModelInheritedCases( - MetaAbstractModelTestCases, -): - - pass - - - -class MetaAbstractModelPyTest( - MetaAbstractModelTestCases, -): - pass