From dce169109c4208e90ede7c5ee8c3b73721c9b632 Mon Sep 17 00:00:00 2001 From: Jon Date: Tue, 5 Aug 2025 13:17:33 +0930 Subject: [PATCH] refactor(settings): ViewSet Unit Test Suite re-written to Pytest for model ExternalLink ref: #942 #940 --- .../test_unit_external_links_viewset.py | 102 +++++++++++++----- 1 file changed, 73 insertions(+), 29 deletions(-) diff --git a/app/settings/tests/unit/external_links/test_unit_external_links_viewset.py b/app/settings/tests/unit/external_links/test_unit_external_links_viewset.py index 304ff98c..2ef20637 100644 --- a/app/settings/tests/unit/external_links/test_unit_external_links_viewset.py +++ b/app/settings/tests/unit/external_links/test_unit_external_links_viewset.py @@ -1,45 +1,89 @@ import pytest -from django.test import Client, TestCase +from api.tests.unit.test_unit_common_viewset import ( + ModelRetrieveUpdateViewSetInheritedCases +) -from rest_framework.reverse import reverse - -from api.tests.unit.test_unit_common_viewset import ModelViewSetInheritedCases - -from settings.viewsets.external_link import ViewSet +from settings.viewsets.external_link import ( + ExternalLink, + ViewSet, +) -@pytest.mark.skip(reason = 'see #895, tests being refactored') @pytest.mark.model_externallink -@pytest.mark.module_settings -class ExternalLinksViewsetList( - ModelViewSetInheritedCases, - TestCase, +class ViewsetTestCases( + ModelRetrieveUpdateViewSetInheritedCases, ): - viewset = ViewSet - route_name = 'v2:_api_externallink' + @pytest.fixture( scope = 'function' ) + def viewset(self): + return ViewSet - @classmethod - def setUpTestData(self): - """Setup Test - - 1. make list request - """ - - super().setUpTestData() + @property + def parameterized_class_attributes(self): + return { + '_log': { + 'type': type(None), + }, + '_model_documentation': { + 'type': type(None), + }, + 'back_url': { + 'type': type(None), + }, + 'documentation': { + 'type': type(None), + 'value': None + }, + 'filterset_fields': { + 'value': [ + 'cluster', + 'devices', + 'service', + 'software' + ] + }, + 'model': { + 'value': ExternalLink + }, + 'model_documentation': { + 'type': type(None), + }, + 'queryset': { + 'type': type(None), + }, + 'serializer_class': { + 'type': type(None), + }, + 'search_fields': { + 'value': [] + }, + 'view_description': { + 'value': 'External Link tags' + }, + 'view_name': { + 'type': type(None), + }, + 'view_serializer_name': { + 'type': type(None), + } + } - client = Client() - - url = reverse( - self.route_name + '-list', - kwargs = self.kwargs - ) - client.force_login(self.view_user) +class ExternalLinkViewsetInheritedCases( + ViewsetTestCases, +): + pass - self.http_options_response_list = client.options(url) + + +@pytest.mark.module_settings +class ExternalLinkViewsetPyTest( + ViewsetTestCases, +): + + pass