From 9e7c4a81916402d6cb9829839129625c58cc23ae Mon Sep 17 00:00:00 2001 From: Jon Date: Mon, 28 Jul 2025 13:05:42 +0930 Subject: [PATCH] refactor(access): ViewSet TestSuite re-written to pytest for model Tenant ref: #897 #899 --- .../tenant/test_organization_viewset_unit.py | 43 ---------- .../unit/tenant/test_unit_tenant_viewset.py | 85 +++++++++++++++++++ .../tests/unit/test_unit_common_viewset.py | 14 ++- pyproject.toml | 1 + 4 files changed, 99 insertions(+), 44 deletions(-) delete mode 100644 app/access/tests/unit/tenant/test_organization_viewset_unit.py create mode 100644 app/access/tests/unit/tenant/test_unit_tenant_viewset.py diff --git a/app/access/tests/unit/tenant/test_organization_viewset_unit.py b/app/access/tests/unit/tenant/test_organization_viewset_unit.py deleted file mode 100644 index 37c9f6b1..00000000 --- a/app/access/tests/unit/tenant/test_organization_viewset_unit.py +++ /dev/null @@ -1,43 +0,0 @@ -import pytest - -from django.test import Client, TestCase - -from rest_framework.reverse import reverse - -from access.viewsets.organization import ViewSet - -from api.tests.unit.test_unit_common_viewset import ModelViewSetInheritedCases - - - -@pytest.mark.skip(reason = 'see #895, tests being refactored') -class OrganizationViewsetList( - ModelViewSetInheritedCases, - TestCase, -): - - viewset = ViewSet - - route_name = 'API:_api_tenant' - - - @classmethod - def setUpTestData(self): - """Setup Test - - 1. make list request - """ - - - super().setUpTestData() - - - client = Client() - - url = reverse( - self.route_name + '-list' - ) - - client.force_login(self.view_user) - - self.http_options_response_list = client.options(url) diff --git a/app/access/tests/unit/tenant/test_unit_tenant_viewset.py b/app/access/tests/unit/tenant/test_unit_tenant_viewset.py new file mode 100644 index 00000000..ebb79983 --- /dev/null +++ b/app/access/tests/unit/tenant/test_unit_tenant_viewset.py @@ -0,0 +1,85 @@ +import pytest + +from access.viewsets.organization import ( + Tenant, + ViewSet, +) + +from api.tests.unit.test_unit_common_viewset import ( + ModelViewSetInheritedCases +) + + + +@pytest.mark.model_tenant +class ViewsetTestCases( + ModelViewSetInheritedCases, +): + + + @pytest.fixture( scope = 'function' ) + def viewset(self): + return ViewSet + + + @property + def parameterized_class_attributes(self): + return { + '_model_documentation': { + 'type': type(None), + 'value': None + }, + 'back_url': { + 'type': type(None), + }, + 'documentation': { + 'type': type(None), + }, + 'filterset_fields': { + 'value': [ + 'name', + 'manager', + ] + }, + 'model': { + 'value': Tenant + }, + 'model_documentation': { + 'type': type(None), + }, + 'queryset': { + 'type': type(None), + }, + 'serializer_class': { + 'type': type(None), + }, + 'search_fields': { + 'value': [ + 'name' + ] + }, + 'view_description': { + 'value': 'Centurion Tenants' + }, + 'view_name': { + 'type': type(None), + }, + 'view_serializer_name': { + 'type': type(None), + } + } + + + +class TenantViewsetInheritedCases( + ViewsetTestCases, +): + pass + + + +@pytest.mark.module_access +class TenantViewsetPyTest( + ViewsetTestCases, +): + pass diff --git a/app/api/tests/unit/test_unit_common_viewset.py b/app/api/tests/unit/test_unit_common_viewset.py index 451dc52f..ccbfe9e8 100644 --- a/app/api/tests/unit/test_unit_common_viewset.py +++ b/app/api/tests/unit/test_unit_common_viewset.py @@ -2219,7 +2219,19 @@ class ModelViewSetInheritedCases( Use this Test Suite for ViewSet classes that inherit from ModelViewSet """ - pass + + @property + def parameterized_class_attributes(self): + return { + # '_log': { + # 'type': logging.Logger, + # 'value': None + # }, + '_log': { + 'type': type(None), + }, + } + diff --git a/pyproject.toml b/pyproject.toml index e613aef1..e72db919 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1146,6 +1146,7 @@ markers = [ "model_softwarecategory: Selects tests for model Software Category.", "model_softwareenablefeatureflag: Selects tests for model Software Enabled Feature Flag.", "model_softwareversion: Selects tests for model Software Version.", + "model_tenant: Selects tests for model Tenant.", "model_ticketbase: Selects tests for model Ticket Base.", "model_ticketcategory: Select all ticket category tests.", "model_ticketcommentaction: Select test for model ticket Action Comment.",