From 0159fd6ed85b9f292b339565b3bd45c924f288e0 Mon Sep 17 00:00:00 2001 From: Jon Date: Thu, 7 Aug 2025 13:41:17 +0930 Subject: [PATCH] refactor(devops): API Metadata Functional Test Suite re-written to Pytest for model SoftwareEnableFeatureFlag ref: #946 #945 --- ...test_functional_feature_flag_api_fields.py | 2 +- .../test_functional_feature_flag_model.py | 2 +- .../software_enable_feature_flag/conftest.py | 25 ++++++++++ ..._software_enable_feature_flag_metadata.py} | 49 +------------------ .../test_unit_feature_flag_serializer.py | 2 +- 5 files changed, 29 insertions(+), 51 deletions(-) create mode 100644 app/devops/tests/functional/software_enable_feature_flag/conftest.py rename app/devops/tests/functional/software_enable_feature_flag/{test_functional_software_enable_feature_flag_viewset.py => test_functional_software_enable_feature_flag_metadata.py} (87%) diff --git a/app/devops/tests/functional/feature_flag/test_functional_feature_flag_api_fields.py b/app/devops/tests/functional/feature_flag/test_functional_feature_flag_api_fields.py index 72e0430f..14ee8e8f 100644 --- a/app/devops/tests/functional/feature_flag/test_functional_feature_flag_api_fields.py +++ b/app/devops/tests/functional/feature_flag/test_functional_feature_flag_api_fields.py @@ -126,7 +126,7 @@ class FeatureFlagAPIInheritedCases( -@pytest.mark.module_assistance +@pytest.mark.module_devops class FeatureFlagAPIPyTest( FeatureFlagAPITestCases, ): diff --git a/app/devops/tests/functional/feature_flag/test_functional_feature_flag_model.py b/app/devops/tests/functional/feature_flag/test_functional_feature_flag_model.py index aa038d9a..69dc62a7 100644 --- a/app/devops/tests/functional/feature_flag/test_functional_feature_flag_model.py +++ b/app/devops/tests/functional/feature_flag/test_functional_feature_flag_model.py @@ -21,7 +21,7 @@ class FeatureFlagModelInheritedCases( -@pytest.mark.module_assistance +@pytest.mark.module_devops class FeatureFlagModelPyTest( FeatureFlagModelTestCases, ): diff --git a/app/devops/tests/functional/software_enable_feature_flag/conftest.py b/app/devops/tests/functional/software_enable_feature_flag/conftest.py new file mode 100644 index 00000000..f0ee2a5f --- /dev/null +++ b/app/devops/tests/functional/software_enable_feature_flag/conftest.py @@ -0,0 +1,25 @@ +import pytest + + + +@pytest.fixture( scope = 'class') +def model(model_softwareenablefeatureflag): + + yield model_softwareenablefeatureflag + + +@pytest.fixture( scope = 'class', autouse = True) +def model_kwargs(request, kwargs_softwareenablefeatureflag): + + request.cls.kwargs_create_item = kwargs_softwareenablefeatureflag.copy() + + yield kwargs_softwareenablefeatureflag.copy() + + if hasattr(request.cls, 'kwargs_create_item'): + del request.cls.kwargs_create_item + + +@pytest.fixture( scope = 'class') +def model_serializer(serializer_softwareenablefeatureflag): + + yield serializer_softwareenablefeatureflag diff --git a/app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_viewset.py b/app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_metadata.py similarity index 87% rename from app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_viewset.py rename to app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_metadata.py index 86d8438d..74dfe5bf 100644 --- a/app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_viewset.py +++ b/app/devops/tests/functional/software_enable_feature_flag/test_functional_software_enable_feature_flag_metadata.py @@ -4,19 +4,15 @@ from django.contrib.auth.models import ( Permission, ) from django.contrib.contenttypes.models import ContentType -from django.test import Client, TestCase +from django.test import TestCase -from django.shortcuts import reverse from access.models.tenant import Tenant as Organization from access.models.team import Team from access.models.team_user import TeamUsers -from api.tests.abstract.api_permissions_viewset import APIPermissions -from api.tests.abstract.api_serializer_viewset import SerializersTestCases from api.tests.abstract.test_metadata_functional import MetadataAttributesFunctional -# from devops.models.feature_flag import FeatureFlag from devops.models.software_enable_feature_flag import SoftwareEnableFeatureFlag from itam.models.software import Software @@ -263,49 +259,6 @@ class ViewSetBase: -class PermissionsAPI( - ViewSetBase, - APIPermissions, - TestCase, -): - - pass - - def test_add_has_permission(self): - """ Check correct permission for add - - This test cases is a duplicate of a test with the same name. Required - as the kwargs are different from normal - - Attempt to add as user with permission - """ - - client = Client() - # if self.url_kwargs: - - url = reverse(self.app_namespace + ':' + self.url_name + '-list', kwargs = { - 'software_id': self.software_add.id, - } - ) - - client.force_login(self.add_user) - response = client.post(url, data=self.add_data) - - assert response.status_code == 201 - - - - -class ViewSet( - ViewSetBase, - SerializersTestCases, - TestCase -): - - pass - - - class Metadata( ViewSetBase, MetadataAttributesFunctional, diff --git a/app/devops/tests/unit/feature_flag/test_unit_feature_flag_serializer.py b/app/devops/tests/unit/feature_flag/test_unit_feature_flag_serializer.py index b166e63a..8e6d643a 100644 --- a/app/devops/tests/unit/feature_flag/test_unit_feature_flag_serializer.py +++ b/app/devops/tests/unit/feature_flag/test_unit_feature_flag_serializer.py @@ -250,7 +250,7 @@ class FeatureFlagSerializerInheritedCases( -@pytest.mark.module_assistance +@pytest.mark.module_devops class FeatureFlagSerializerPyTest( FeatureFlagSerializerTestCases ):