From 146dd508d6f597d3baececf269db2da27fd73ff8 Mon Sep 17 00:00:00 2001 From: Jon Date: Thu, 7 Aug 2025 12:49:23 +0930 Subject: [PATCH] refactor(devops): ViewSet Unit Test Suite re-written to Pytest for model FeatureFlag ref: #946 #944 --- .../test_unit_feature_flag_viewset.py | 86 +++++++++++++++++++ .../feature_flag/unit_feature_flag_viewset.py | 42 --------- 2 files changed, 86 insertions(+), 42 deletions(-) create mode 100644 app/devops/tests/unit/feature_flag/test_unit_feature_flag_viewset.py delete mode 100644 app/devops/tests/unit/feature_flag/unit_feature_flag_viewset.py diff --git a/app/devops/tests/unit/feature_flag/test_unit_feature_flag_viewset.py b/app/devops/tests/unit/feature_flag/test_unit_feature_flag_viewset.py new file mode 100644 index 00000000..31377c11 --- /dev/null +++ b/app/devops/tests/unit/feature_flag/test_unit_feature_flag_viewset.py @@ -0,0 +1,86 @@ +import pytest + +from api.tests.unit.test_unit_common_viewset import ModelViewSetInheritedCases + +from devops.viewsets.feature_flag import ( + FeatureFlag, + ViewSet, +) + + + +@pytest.mark.model_featureflag +class ViewsetTestCases( + ModelViewSetInheritedCases, +): + + + @pytest.fixture( scope = 'function' ) + def viewset(self): + return ViewSet + + + @property + def parameterized_class_attributes(self): + return { + '_model_documentation': { + 'type': type(None), + }, + 'back_url': { + 'type': type(None), + }, + 'documentation': { + 'type': type(None), + 'value': None + }, + 'filterset_fields': { + 'value': [ + 'enabled', + 'organization', + 'software' + ] + }, + 'model': { + 'value': FeatureFlag + }, + 'model_documentation': { + 'type': type(None), + }, + 'queryset': { + 'type': type(None), + }, + 'serializer_class': { + 'type': type(None), + }, + 'search_fields': { + 'value': [ + 'description', + 'name' + ] + }, + 'view_description': { + 'value': 'Software Development Feature Flags' + }, + 'view_name': { + 'type': type(None), + }, + 'view_serializer_name': { + 'type': type(None), + } + } + + + +class FeatureFlagViewsetInheritedCases( + ViewsetTestCases, +): + pass + + + +@pytest.mark.module_devops +class FeatureFlagViewsetPyTest( + ViewsetTestCases, +): + + pass diff --git a/app/devops/tests/unit/feature_flag/unit_feature_flag_viewset.py b/app/devops/tests/unit/feature_flag/unit_feature_flag_viewset.py deleted file mode 100644 index 6f33a320..00000000 --- a/app/devops/tests/unit/feature_flag/unit_feature_flag_viewset.py +++ /dev/null @@ -1,42 +0,0 @@ -from django.test import Client, TestCase - -from rest_framework.reverse import reverse - -from api.tests.unit.test_unit_common_viewset import ModelViewSetInheritedCases - -from devops.viewsets.feature_flag import ViewSet - - - -@pytest.mark.skip(reason = 'see #895, tests being refactored') -class ViewsetList( - ModelViewSetInheritedCases, - TestCase, -): - - viewset = ViewSet - - route_name = 'v2:devops:_api_featureflag' - - - @classmethod - def setUpTestData(self): - """Setup Test - - 1. make list request - """ - - - super().setUpTestData() - - - client = Client() - - url = reverse( - self.route_name + '-list', - kwargs = self.kwargs - ) - - client.force_login(self.view_user) - - self.http_options_response_list = client.options(url)