From 2769859db041ddb09c4523317a4d71c2de316220 Mon Sep 17 00:00:00 2001 From: Jon Date: Mon, 28 Jul 2025 10:31:30 +0930 Subject: [PATCH] test(api): SubModel ViewSet Test Suite to test re-written class ref: #897 #895 --- .../unit/entity/test_unit_entity_viewset.py | 13 +++- .../tests/unit/test_unit_common_viewset.py | 65 +++++++++---------- 2 files changed, 43 insertions(+), 35 deletions(-) diff --git a/app/access/tests/unit/entity/test_unit_entity_viewset.py b/app/access/tests/unit/entity/test_unit_entity_viewset.py index f42d373b..d949dae6 100644 --- a/app/access/tests/unit/entity/test_unit_entity_viewset.py +++ b/app/access/tests/unit/entity/test_unit_entity_viewset.py @@ -7,13 +7,13 @@ from access.viewsets.entity import ( ViewSet, ) -from api.tests.unit.test_unit_common_viewset import ModelViewSetInheritedCases +from api.tests.unit.test_unit_common_viewset import SubModelViewSetInheritedCases @pytest.mark.model_entity class ViewsetTestCases( - ModelViewSetInheritedCases, + SubModelViewSetInheritedCases, ): @@ -37,6 +37,9 @@ class ViewsetTestCases( 'type': type(None), 'value': None }, + 'base_model': { + 'value': Entity + }, 'documentation': { 'type': type(None), 'value': None @@ -53,6 +56,12 @@ class ViewsetTestCases( 'type': type(None), 'value': None }, + 'model_kwarg': { + 'value': 'model_name' + }, + 'model_suffix': { + 'type': type(None) + }, 'queryset': { 'type': type(None), 'value': None diff --git a/app/api/tests/unit/test_unit_common_viewset.py b/app/api/tests/unit/test_unit_common_viewset.py index c1ab5254..a3c15d00 100644 --- a/app/api/tests/unit/test_unit_common_viewset.py +++ b/app/api/tests/unit/test_unit_common_viewset.py @@ -32,6 +32,7 @@ from api.viewsets.common import ( CommonViewSet, ModelViewSet, SubModelViewSet, + SubModelViewSet_ReWrite, ModelCreateViewSet, ModelListRetrieveDeleteViewSet, @@ -1069,6 +1070,10 @@ class SubModelViewSetTestCases( 'model_kwarg': { 'type': str, 'value': None + }, + 'model_suffix': { + 'type': str, + 'value': None } } @@ -1136,7 +1141,7 @@ class SubModelViewSetPyTest( @pytest.fixture( scope = 'function' ) def viewset(self): - return SubModelViewSet + return SubModelViewSet_ReWrite @property @@ -1163,8 +1168,11 @@ class SubModelViewSetPyTest( 'value': None }, 'model': { + 'type': django.db.models.NOT_PROVIDED, + 'value': django.db.models.NOT_PROVIDED + }, + 'model_suffix': { 'type': type(None), - 'value': None }, 'model_documentation': { 'type': type(None), @@ -1197,20 +1205,6 @@ class SubModelViewSetPyTest( } - def test_view_attr_model_not_empty(self, viewset): - """Attribute Test - - This test case overrides a test case of the same name. As this test is - checking the base classes, it's return is different to a class that - has inherited from this or parent classes. - - Attribute `model` must return a value that is not None - """ - - assert viewset().model is None - - - def test_view_attr_type_base_model(self): """Attribute Test @@ -2235,18 +2229,6 @@ class SubModelViewSetInheritedCases( Use this Test Suite for ViewSet classes that inherit from SubModelViewSet """ - http_options_response_list = None - """Inherited class must make and store here a HTTP/Options request""" - - route_name = None - """Inherited class must define the url rout name with namespace""" - - base_model = None - """The Sub Model that is returned from the model property""" - - # viewset = None - - # @classmethod # def setUpTestData(self): # """Setup Test @@ -2260,14 +2242,31 @@ class SubModelViewSetInheritedCases( # super().setUpTestData() + @property + def parameterized_class_attributes(self): + return { + 'model_suffix': { + 'type': str, + 'value': None + }, + 'base_model': { + 'type': django.db.models.base.ModelBase, + 'value': None + }, + 'model_kwarg': { + 'type': str, + 'value': None + } + } - def test_view_attr_model_value(self, viewset): - """Attribute Test - Attribute `model` must return the correct sub-model - """ + # ToDo: model - assert viewset().model == self.model + # ToDo: related_objects + + # ToDo: get_serializer_class + + # ToDo: related_objects