test: Refactor all ViewSet Unit Test cases to use new test cases class

ref: #696 closes #672
This commit is contained in:
2025-03-25 02:22:47 +09:30
parent e8bc98c315
commit 1d1c76e033
88 changed files with 689 additions and 2846 deletions

View File

@ -1,47 +1,22 @@
from django.contrib.auth.models import User
from django.test import Client, TestCase
from rest_framework.reverse import reverse
from access.models.organization import Organization
from api.tests.abstract.viewsets import ViewSetModel
from api.tests.unit.test_unit_common_viewset import ModelViewSetInheritedCases
from devops.viewsets.feature_flag import ViewSet
class ViewsetCommon(
ViewSetModel,
class ViewsetList(
ModelViewSetInheritedCases,
TestCase,
):
viewset = ViewSet
route_name = 'v2:devops:_api_v2_feature_flag'
@classmethod
def setUpTestData(self):
"""Setup Test
1. Create an organization
3. create super user
"""
organization = Organization.objects.create(name='test_org')
self.organization = organization
self.view_user = User.objects.create_user(username="test_view_user", password="password", is_superuser=True)
self.kwargs = {}
class ViewsetList(
ViewsetCommon,
TestCase,
):
@classmethod
def setUpTestData(self):

View File

@ -1,11 +1,8 @@
from django.contrib.auth.models import User
from django.test import Client, TestCase
from rest_framework.reverse import reverse
from access.models.organization import Organization
from api.tests.abstract.viewsets import ViewSetModel
from api.tests.unit.test_unit_common_viewset import ModelViewSetInheritedCases
from devops.models.software_enable_feature_flag import SoftwareEnableFeatureFlag
from devops.viewsets.feature_flag_notes import ViewSet
@ -14,36 +11,15 @@ from itam.models.software import Software
class ViewsetCommon(
ViewSetModel,
class NotesViewsetList(
ModelViewSetInheritedCases,
TestCase,
):
viewset = ViewSet
route_name = 'v2:devops:_api_v2_feature_flag_note'
@classmethod
def setUpTestData(self):
"""Setup Test
1. Create an organization
3. create super user
"""
organization = Organization.objects.create(name='test_org')
self.organization = organization
self.view_user = User.objects.create_user(username="test_view_user", password="password", is_superuser=True)
class NotesViewsetList(
ViewsetCommon,
TestCase,
):
@classmethod
def setUpTestData(self):

View File

@ -1,15 +1,8 @@
from django.contrib.auth.models import User
from django.test import Client, TestCase
from rest_framework_json_api.metadata import JSONAPIMetadata
from rest_framework.permissions import IsAuthenticatedOrReadOnly
from rest_framework.reverse import reverse
from access.models.organization import Organization
from api.tests.abstract.viewsets import ViewSetModel
from api.viewsets.common import PublicReadOnlyViewSet, StaticPageNumbering
from api.tests.unit.test_unit_common_viewset import PublicReadOnlyViewSetInheritedCases
from devops.models.software_enable_feature_flag import SoftwareEnableFeatureFlag
from devops.viewsets.public_feature_flag import ViewSet
@ -18,51 +11,15 @@ from itam.models.software import Software
class ViewsetCommon(
ViewSetModel,
class ViewsetList(
PublicReadOnlyViewSetInheritedCases,
TestCase,
):
viewset = ViewSet
route_name = 'v2:public:devops:_public_api_v2_feature_flag'
@classmethod
def setUpTestData(self):
"""Setup Test
1. Create an organization
3. create super user
"""
organization = Organization.objects.create(name='test_org')
self.organization = organization
software = Software.objects.create(
organization = self.organization,
name = 'software'
)
SoftwareEnableFeatureFlag.objects.create(
organization = self.organization,
software = software,
enabled = True,
)
self.view_user = User.objects.create_user(username="test_view_user", password="password", is_superuser=True)
self.kwargs = {
'organization_id': self.organization.id,
'software_id': software.id,
}
class ViewsetList(
ViewsetCommon,
TestCase,
):
@classmethod
def setUpTestData(self):
@ -74,6 +31,22 @@ class ViewsetList(
super().setUpTestData()
software = Software.objects.create(
organization = self.organization,
name = 'software'
)
SoftwareEnableFeatureFlag.objects.create(
organization = self.organization,
software = software,
enabled = True,
)
self.kwargs = {
'organization_id': self.organization.id,
'software_id': software.id,
}
client = Client()
@ -83,47 +56,3 @@ class ViewsetList(
)
self.http_options_response_list = client.options(url)
def test_view_common_inheritence(self):
"""Common ViewSet inheritence
Ensure that the public endpoint inherits from the correct ViewSet
"""
assert issubclass(self.viewset, PublicReadOnlyViewSet)
def test_view_attr_permission_classes_value(self):
"""Attribute Test
Attribute `permission_classes` must be metadata class `ReactUIMetadata`
"""
view_set = self.viewset()
assert view_set.permission_classes[0] is IsAuthenticatedOrReadOnly
def test_view_attr_metadata_class_type(self):
"""Attribute Test
Attribute `metadata_class` must be metadata class `ReactUIMetadata`
"""
view_set = self.viewset()
assert view_set.metadata_class is JSONAPIMetadata
def test_view_attr_pagination_class_value(self):
"""Attribute Test
Attribute `pagination_class` must be metadata class `StaticPageNumbering`
"""
view_set = self.viewset()
assert view_set.pagination_class is StaticPageNumbering

View File

@ -1,11 +1,8 @@
from django.contrib.auth.models import User
from django.test import Client, TestCase
from rest_framework.reverse import reverse
from access.models.organization import Organization
from api.tests.abstract.viewsets import ViewSetModel
from api.tests.unit.test_unit_common_viewset import ModelViewSetInheritedCases
from devops.viewsets.software_enable_feature_flag import ViewSet
@ -13,42 +10,15 @@ from itam.models.software import Software
class ViewsetCommon(
ViewSetModel,
class ViewsetList(
ModelViewSetInheritedCases,
TestCase,
):
viewset = ViewSet
route_name = 'v2:_api_v2_feature_flag_software'
@classmethod
def setUpTestData(self):
"""Setup Test
1. Create an organization
3. create super user
"""
organization = Organization.objects.create(name='test_org')
self.organization = organization
self.view_user = User.objects.create_user(username="test_view_user", password="password", is_superuser=True)
software = Software.objects.create(
organization = self.organization,
name = 'soft',
)
self.kwargs = { 'software_id': software.id }
class ViewsetList(
ViewsetCommon,
TestCase,
):
@classmethod
def setUpTestData(self):
@ -60,6 +30,13 @@ class ViewsetList(
super().setUpTestData()
software = Software.objects.create(
organization = self.organization,
name = 'soft',
)
self.kwargs = { 'software_id': software.id }
client = Client()