Procházet zdrojové kódy

Closes #22161: Rename filterset test mixin base classes to *TestMixin (#22856)

* Fixes #22161: Rename filterset test mixin base classes to *TestMixin

Completes the test-class naming standardization begun in #22097, which
renamed concrete test classes to the *TestCase suffix but deliberately
left four filterset test mixin base classes untouched because renaming
them is breaking for plugins that inherit from them.

These four are pure mixins, not concrete test cases, so they follow
NetBox's existing mixin naming convention (RQQueueTestMixin,
ComponentTraceMixin) rather than the *TestCase suffix the issue
originally proposed. The literal *TestCase names also collide with two
existing concrete classes (BaseFilterSetTestCase in
utilities/tests/test_filters.py and ChangeLoggedFilterSetTestCase in
extras/tests/test_filtersets.py).

  BaseFilterSetTests                     -> BaseFilterSetTestMixin
  ChangeLoggedFilterSetTests             -> ChangeLoggedFilterSetTestMixin
  DeviceComponentFilterSetTests          -> DeviceComponentFilterSetTestMixin
  DeviceComponentTemplateFilterSetTests  -> DeviceComponentTemplateFilterSetTestMixin

This is a breaking change for plugins whose test suites import the two
exported mixins from utilities.testing; they must update their imports.

* Fixes #22161: Update add-model skill for renamed test mixin

The add-model skill still referenced ChangeLoggedFilterSetTests in its
example filterset test. Update it to ChangeLoggedFilterSetTestMixin.
Jason Novinger před 2 týdny
rodič
revize
a2c32f137b

+ 3 - 3
.claude/skills/add-model/SKILL.md

@@ -478,9 +478,9 @@ class MyModelTestCase(ViewTestCases.PrimaryObjectViewTestCase):
 **File:** `netbox/<app>/tests/test_filtersets.py`
 **File:** `netbox/<app>/tests/test_filtersets.py`
 
 
 ```python
 ```python
-from utilities.testing import ChangeLoggedFilterSetTests
+from utilities.testing import ChangeLoggedFilterSetTestMixin
 
 
-class MyModelFilterSetTestCase(TestCase, ChangeLoggedFilterSetTests):
+class MyModelFilterSetTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = MyModel.objects.all()
     queryset = MyModel.objects.all()
     filterset = MyModelFilterSet
     filterset = MyModelFilterSet
 
 
@@ -496,7 +496,7 @@ class MyModelFilterSetTestCase(TestCase, ChangeLoggedFilterSetTests):
         # Test FK and FK_id filters
         # Test FK and FK_id filters
 ```
 ```
 
 
-`ChangeLoggedFilterSetTests` provides standard tests for `id`, `created`, `last_updated`, `q` search, etc. Always mix it in.
+`ChangeLoggedFilterSetTestMixin` provides standard tests for `id`, `created`, `last_updated`, `q` search, etc. Always mix it in.
 
 
 ## Common Gotchas
 ## Common Gotchas
 
 

+ 12 - 12
netbox/circuits/tests/test_filtersets.py

@@ -19,10 +19,10 @@ from dcim.models import (
 from ipam.models import ASN, RIR
 from ipam.models import ASN, RIR
 from netbox.choices import DistanceUnitChoices
 from netbox.choices import DistanceUnitChoices
 from tenancy.models import Tenant, TenantGroup
 from tenancy.models import Tenant, TenantGroup
-from utilities.testing import ChangeLoggedFilterSetTests
+from utilities.testing import ChangeLoggedFilterSetTestMixin
 
 
 
 
-class ProviderTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ProviderTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Provider.objects.all()
     queryset = Provider.objects.all()
     filterset = ProviderFilterSet
     filterset = ProviderFilterSet
 
 
@@ -134,7 +134,7 @@ class ProviderTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class CircuitTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
+class CircuitTypeTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = CircuitType.objects.all()
     queryset = CircuitType.objects.all()
     filterset = CircuitTypeFilterSet
     filterset = CircuitTypeFilterSet
 
 
@@ -164,7 +164,7 @@ class CircuitTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class CircuitTestCase(TestCase, ChangeLoggedFilterSetTests):
+class CircuitTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Circuit.objects.all()
     queryset = Circuit.objects.all()
     filterset = CircuitFilterSet
     filterset = CircuitFilterSet
 
 
@@ -439,7 +439,7 @@ class CircuitTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
 
 
 
-class CircuitTerminationTestCase(TestCase, ChangeLoggedFilterSetTests):
+class CircuitTerminationTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = CircuitTermination.objects.all()
     queryset = CircuitTermination.objects.all()
     filterset = CircuitTerminationFilterSet
     filterset = CircuitTerminationFilterSet
     ignore_fields = ('cable', 'cable_positions')
     ignore_fields = ('cable', 'cable_positions')
@@ -608,7 +608,7 @@ class CircuitTerminationTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 7)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 7)
 
 
 
 
-class CircuitGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
+class CircuitGroupTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = CircuitGroup.objects.all()
     queryset = CircuitGroup.objects.all()
     filterset = CircuitGroupFilterSet
     filterset = CircuitGroupFilterSet
 
 
@@ -666,7 +666,7 @@ class CircuitGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
 
 
 
 
-class CircuitGroupAssignmentTestCase(TestCase, ChangeLoggedFilterSetTests):
+class CircuitGroupAssignmentTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = CircuitGroupAssignment.objects.all()
     queryset = CircuitGroupAssignment.objects.all()
     filterset = CircuitGroupAssignmentFilterSet
     filterset = CircuitGroupAssignmentFilterSet
 
 
@@ -787,7 +787,7 @@ class CircuitGroupAssignmentTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
 
 
 
-class ProviderNetworkTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ProviderNetworkTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ProviderNetwork.objects.all()
     queryset = ProviderNetwork.objects.all()
     filterset = ProviderNetworkFilterSet
     filterset = ProviderNetworkFilterSet
 
 
@@ -828,7 +828,7 @@ class ProviderNetworkTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ProviderAccountTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ProviderAccountTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ProviderAccount.objects.all()
     queryset = ProviderAccount.objects.all()
     filterset = ProviderAccountFilterSet
     filterset = ProviderAccountFilterSet
 
 
@@ -873,7 +873,7 @@ class ProviderAccountTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class VirtualCircuitTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VirtualCircuitTypeTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VirtualCircuitType.objects.all()
     queryset = VirtualCircuitType.objects.all()
     filterset = VirtualCircuitTypeFilterSet
     filterset = VirtualCircuitTypeFilterSet
 
 
@@ -903,7 +903,7 @@ class VirtualCircuitTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class VirtualCircuitTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VirtualCircuitTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VirtualCircuit.objects.all()
     queryset = VirtualCircuit.objects.all()
     filterset = VirtualCircuitFilterSet
     filterset = VirtualCircuitFilterSet
 
 
@@ -1039,7 +1039,7 @@ class VirtualCircuitTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class VirtualCircuitTerminationTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VirtualCircuitTerminationTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VirtualCircuitTermination.objects.all()
     queryset = VirtualCircuitTermination.objects.all()
     filterset = VirtualCircuitTerminationFilterSet
     filterset = VirtualCircuitTerminationFilterSet
 
 

+ 6 - 6
netbox/core/tests/test_filtersets.py

@@ -7,14 +7,14 @@ from django.test import TestCase
 from dcim.models import Site
 from dcim.models import Site
 from ipam.models import IPAddress
 from ipam.models import IPAddress
 from users.models import User
 from users.models import User
-from utilities.testing import BaseFilterSetTests, ChangeLoggedFilterSetTests
+from utilities.testing import BaseFilterSetTestMixin, ChangeLoggedFilterSetTestMixin
 
 
 from ..choices import *
 from ..choices import *
 from ..filtersets import *
 from ..filtersets import *
 from ..models import *
 from ..models import *
 
 
 
 
-class DataSourceTestCase(TestCase, ChangeLoggedFilterSetTests):
+class DataSourceTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = DataSource.objects.all()
     queryset = DataSource.objects.all()
     filterset = DataSourceFilterSet
     filterset = DataSourceFilterSet
     ignore_fields = ('ignore_rules', 'parameters')
     ignore_fields = ('ignore_rules', 'parameters')
@@ -82,7 +82,7 @@ class DataSourceTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class DataFileTestCase(TestCase, ChangeLoggedFilterSetTests):
+class DataFileTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = DataFile.objects.all()
     queryset = DataFile.objects.all()
     filterset = DataFileFilterSet
     filterset = DataFileFilterSet
     ignore_fields = ('data',)
     ignore_fields = ('data',)
@@ -148,7 +148,7 @@ class DataFileTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ObjectChangeTestCase(TestCase, BaseFilterSetTests):
+class ObjectChangeTestCase(TestCase, BaseFilterSetTestMixin):
     queryset = ObjectChange.objects.all()
     queryset = ObjectChange.objects.all()
     filterset = ObjectChangeFilterSet
     filterset = ObjectChangeFilterSet
     ignore_fields = ('message', 'prechange_data', 'postchange_data')
     ignore_fields = ('message', 'prechange_data', 'postchange_data')
@@ -244,7 +244,7 @@ class ObjectChangeTestCase(TestCase, BaseFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
 
 
 
 
-class JobTestCase(TestCase, BaseFilterSetTests):
+class JobTestCase(TestCase, BaseFilterSetTestMixin):
     queryset = Job.objects.all()
     queryset = Job.objects.all()
     filterset = JobFilterSet
     filterset = JobFilterSet
     ignore_fields = ('data', 'error', 'log_entries')
     ignore_fields = ('data', 'error', 'log_entries')
@@ -306,7 +306,7 @@ class JobTestCase(TestCase, BaseFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ObjectTypeTestCase(TestCase, BaseFilterSetTests):
+class ObjectTypeTestCase(TestCase, BaseFilterSetTestMixin):
     queryset = ObjectType.objects.all()
     queryset = ObjectType.objects.all()
     filterset = ObjectTypeFilterSet
     filterset = ObjectTypeFilterSet
     ignore_fields = (
     ignore_fields = (

+ 54 - 50
netbox/dcim/tests/test_filtersets.py

@@ -11,13 +11,13 @@ from ipam.models import ASN, RIR, VLAN, VRF, IPAddress, VLANTranslationPolicy
 from netbox.choices import ColorChoices, WeightUnitChoices
 from netbox.choices import ColorChoices, WeightUnitChoices
 from tenancy.models import Tenant, TenantGroup
 from tenancy.models import Tenant, TenantGroup
 from users.models import User
 from users.models import User
-from utilities.testing import ChangeLoggedFilterSetTests, create_test_device, create_test_virtualmachine
+from utilities.testing import ChangeLoggedFilterSetTestMixin, create_test_device, create_test_virtualmachine
 from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
 from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
 from wireless.choices import WirelessChannelChoices, WirelessRoleChoices
 from wireless.choices import WirelessChannelChoices, WirelessRoleChoices
 from wireless.models import WirelessLink
 from wireless.models import WirelessLink
 
 
 
 
-class DeviceComponentFilterSetTests:
+class DeviceComponentFilterSetTestMixin:
 
 
     def test_q(self):
     def test_q(self):
         params = {'q': 'First'}
         params = {'q': 'First'}
@@ -53,7 +53,7 @@ class DeviceComponentFilterSetTests:
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class DeviceComponentTemplateFilterSetTests:
+class DeviceComponentTemplateFilterSetTestMixin:
 
 
     def test_q(self):
     def test_q(self):
         params = {'q': 'foobar1'}
         params = {'q': 'foobar1'}
@@ -69,7 +69,7 @@ class DeviceComponentTemplateFilterSetTests:
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class RegionTestCase(TestCase, ChangeLoggedFilterSetTests):
+class RegionTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Region.objects.all()
     queryset = Region.objects.all()
     filterset = RegionFilterSet
     filterset = RegionFilterSet
 
 
@@ -150,7 +150,7 @@ class RegionTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8)
 
 
 
 
-class SiteGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
+class SiteGroupTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = SiteGroup.objects.all()
     queryset = SiteGroup.objects.all()
     filterset = SiteGroupFilterSet
     filterset = SiteGroupFilterSet
 
 
@@ -229,7 +229,7 @@ class SiteGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8)
 
 
 
 
-class SiteTestCase(TestCase, ChangeLoggedFilterSetTests):
+class SiteTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Site.objects.all()
     queryset = Site.objects.all()
     filterset = SiteFilterSet
     filterset = SiteFilterSet
     ignore_fields = ('physical_address', 'shipping_address')
     ignore_fields = ('physical_address', 'shipping_address')
@@ -388,7 +388,7 @@ class SiteTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class LocationTestCase(TestCase, ChangeLoggedFilterSetTests):
+class LocationTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Location.objects.all()
     queryset = Location.objects.all()
     filterset = LocationFilterSet
     filterset = LocationFilterSet
 
 
@@ -536,7 +536,7 @@ class LocationTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
 
 
 
-class RackGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
+class RackGroupTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = RackGroup.objects.all()
     queryset = RackGroup.objects.all()
     filterset = RackGroupFilterSet
     filterset = RackGroupFilterSet
 
 
@@ -567,7 +567,7 @@ class RackGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class RackRoleTestCase(TestCase, ChangeLoggedFilterSetTests):
+class RackRoleTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = RackRole.objects.all()
     queryset = RackRole.objects.all()
     filterset = RackRoleFilterSet
     filterset = RackRoleFilterSet
 
 
@@ -602,7 +602,7 @@ class RackRoleTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class RackTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
+class RackTypeTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = RackType.objects.all()
     queryset = RackType.objects.all()
     filterset = RackTypeFilterSet
     filterset = RackTypeFilterSet
 
 
@@ -755,7 +755,7 @@ class RackTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class RackTestCase(TestCase, ChangeLoggedFilterSetTests):
+class RackTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Rack.objects.all()
     queryset = Rack.objects.all()
     filterset = RackFilterSet
     filterset = RackFilterSet
     ignore_fields = ('units',)
     ignore_fields = ('units',)
@@ -1129,7 +1129,7 @@ class RackTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
 
 
 
-class RackReservationTestCase(TestCase, ChangeLoggedFilterSetTests):
+class RackReservationTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = RackReservation.objects.all()
     queryset = RackReservation.objects.all()
     filterset = RackReservationFilterSet
     filterset = RackReservationFilterSet
     ignore_fields = ('units',)
     ignore_fields = ('units',)
@@ -1309,7 +1309,7 @@ class RackReservationTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ManufacturerTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ManufacturerTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Manufacturer.objects.all()
     queryset = Manufacturer.objects.all()
     filterset = ManufacturerFilterSet
     filterset = ManufacturerFilterSet
 
 
@@ -1340,7 +1340,7 @@ class ManufacturerTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class DeviceTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
+class DeviceTypeTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = DeviceType.objects.all()
     queryset = DeviceType.objects.all()
     filterset = DeviceTypeFilterSet
     filterset = DeviceTypeFilterSet
     ignore_fields = ('front_image', 'rear_image')
     ignore_fields = ('front_image', 'rear_image')
@@ -1592,7 +1592,7 @@ class DeviceTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ModuleTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ModuleTypeTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ModuleType.objects.all()
     queryset = ModuleType.objects.all()
     filterset = ModuleTypeFilterSet
     filterset = ModuleTypeFilterSet
     ignore_fields = ['attribute_data']
     ignore_fields = ['attribute_data']
@@ -1827,7 +1827,7 @@ class ModuleTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
 
 
 
-class ModuleTypeProfileTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ModuleTypeProfileTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ModuleTypeProfile.objects.all()
     queryset = ModuleTypeProfile.objects.all()
     filterset = ModuleTypeProfileFilterSet
     filterset = ModuleTypeProfileFilterSet
     ignore_fields = ['schema']
     ignore_fields = ['schema']
@@ -1886,7 +1886,7 @@ class ModuleTypeProfileTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ModuleBayTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ModuleBayTypeTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ModuleBayType.objects.all()
     queryset = ModuleBayType.objects.all()
     filterset = ModuleBayTypeFilterSet
     filterset = ModuleBayTypeFilterSet
 
 
@@ -1929,7 +1929,7 @@ class ModuleBayTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ConsolePortTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests, ChangeLoggedFilterSetTests):
+class ConsolePortTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = ConsolePortTemplate.objects.all()
     queryset = ConsolePortTemplate.objects.all()
     filterset = ConsolePortTemplateFilterSet
     filterset = ConsolePortTemplateFilterSet
 
 
@@ -1956,7 +1956,9 @@ class ConsolePortTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTest
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ConsoleServerPortTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests, ChangeLoggedFilterSetTests):
+class ConsoleServerPortTemplateTestCase(
+    TestCase, DeviceComponentTemplateFilterSetTestMixin, ChangeLoggedFilterSetTestMixin
+):
     queryset = ConsoleServerPortTemplate.objects.all()
     queryset = ConsoleServerPortTemplate.objects.all()
     filterset = ConsoleServerPortTemplateFilterSet
     filterset = ConsoleServerPortTemplateFilterSet
 
 
@@ -1983,7 +1985,7 @@ class ConsoleServerPortTemplateTestCase(TestCase, DeviceComponentTemplateFilterS
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class PowerPortTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests, ChangeLoggedFilterSetTests):
+class PowerPortTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = PowerPortTemplate.objects.all()
     queryset = PowerPortTemplate.objects.all()
     filterset = PowerPortTemplateFilterSet
     filterset = PowerPortTemplateFilterSet
 
 
@@ -2036,7 +2038,7 @@ class PowerPortTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests,
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class PowerOutletTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests, ChangeLoggedFilterSetTests):
+class PowerOutletTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = PowerOutletTemplate.objects.all()
     queryset = PowerOutletTemplate.objects.all()
     filterset = PowerOutletTemplateFilterSet
     filterset = PowerOutletTemplateFilterSet
 
 
@@ -2089,7 +2091,7 @@ class PowerOutletTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTest
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class InterfaceTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests, ChangeLoggedFilterSetTests):
+class InterfaceTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = InterfaceTemplate.objects.all()
     queryset = InterfaceTemplate.objects.all()
     filterset = InterfaceTemplateFilterSet
     filterset = InterfaceTemplateFilterSet
 
 
@@ -2172,7 +2174,7 @@ class InterfaceTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests,
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class FrontPortTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests, ChangeLoggedFilterSetTests):
+class FrontPortTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = FrontPortTemplate.objects.all()
     queryset = FrontPortTemplate.objects.all()
     filterset = FrontPortTemplateFilterSet
     filterset = FrontPortTemplateFilterSet
 
 
@@ -2245,7 +2247,7 @@ class FrontPortTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests,
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class RearPortTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests, ChangeLoggedFilterSetTests):
+class RearPortTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = RearPortTemplate.objects.all()
     queryset = RearPortTemplate.objects.all()
     filterset = RearPortTemplateFilterSet
     filterset = RearPortTemplateFilterSet
 
 
@@ -2305,7 +2307,7 @@ class RearPortTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests,
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ModuleBayTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests, ChangeLoggedFilterSetTests):
+class ModuleBayTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = ModuleBayTemplate.objects.all()
     queryset = ModuleBayTemplate.objects.all()
     filterset = ModuleBayTemplateFilterSet
     filterset = ModuleBayTemplateFilterSet
 
 
@@ -2365,7 +2367,7 @@ class ModuleBayTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests,
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class DeviceBayTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests, ChangeLoggedFilterSetTests):
+class DeviceBayTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = DeviceBayTemplate.objects.all()
     queryset = DeviceBayTemplate.objects.all()
     filterset = DeviceBayTemplateFilterSet
     filterset = DeviceBayTemplateFilterSet
 
 
@@ -2406,7 +2408,9 @@ class DeviceBayTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests,
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
 
 
 
-class InventoryItemTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTests, ChangeLoggedFilterSetTests):
+class InventoryItemTemplateTestCase(
+    TestCase, DeviceComponentTemplateFilterSetTestMixin, ChangeLoggedFilterSetTestMixin
+):
     queryset = InventoryItemTemplate.objects.all()
     queryset = InventoryItemTemplate.objects.all()
     filterset = InventoryItemTemplateFilterSet
     filterset = InventoryItemTemplateFilterSet
 
 
@@ -2516,7 +2520,7 @@ class InventoryItemTemplateTestCase(TestCase, DeviceComponentTemplateFilterSetTe
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class DeviceRoleTestCase(TestCase, ChangeLoggedFilterSetTests):
+class DeviceRoleTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = DeviceRole.objects.all()
     queryset = DeviceRole.objects.all()
     filterset = DeviceRoleFilterSet
     filterset = DeviceRoleFilterSet
 
 
@@ -2624,7 +2628,7 @@ class DeviceRoleTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
 
 
 
-class PlatformTestCase(TestCase, ChangeLoggedFilterSetTests):
+class PlatformTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Platform.objects.all()
     queryset = Platform.objects.all()
     filterset = PlatformFilterSet
     filterset = PlatformFilterSet
 
 
@@ -2725,7 +2729,7 @@ class PlatformTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
 
 
 
-class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
+class DeviceTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Device.objects.all()
     queryset = Device.objects.all()
     filterset = DeviceFilterSet
     filterset = DeviceFilterSet
     ignore_fields = ('local_context_data', 'oob_ip', 'primary_ip4', 'primary_ip6', 'vc_master_for')
     ignore_fields = ('local_context_data', 'oob_ip', 'primary_ip4', 'primary_ip6', 'vc_master_for')
@@ -3222,7 +3226,7 @@ class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ModuleTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ModuleTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Module.objects.all()
     queryset = Module.objects.all()
     filterset = ModuleFilterSet
     filterset = ModuleFilterSet
     ignore_fields = ('local_context_data',)
     ignore_fields = ('local_context_data',)
@@ -3520,7 +3524,7 @@ class ModuleTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 6)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 6)
 
 
 
 
-class ConsolePortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFilterSetTests):
+class ConsolePortTestCase(TestCase, DeviceComponentFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = ConsolePort.objects.all()
     queryset = ConsolePort.objects.all()
     filterset = ConsolePortFilterSet
     filterset = ConsolePortFilterSet
     ignore_fields = ('cable_positions',)
     ignore_fields = ('cable_positions',)
@@ -3771,7 +3775,7 @@ class ConsolePortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedF
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
 
 
 
-class ConsoleServerPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFilterSetTests):
+class ConsoleServerPortTestCase(TestCase, DeviceComponentFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = ConsoleServerPort.objects.all()
     queryset = ConsoleServerPort.objects.all()
     filterset = ConsoleServerPortFilterSet
     filterset = ConsoleServerPortFilterSet
     ignore_fields = ('cable_positions',)
     ignore_fields = ('cable_positions',)
@@ -4022,7 +4026,7 @@ class ConsoleServerPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeL
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
 
 
 
-class PowerPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFilterSetTests):
+class PowerPortTestCase(TestCase, DeviceComponentFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = PowerPort.objects.all()
     queryset = PowerPort.objects.all()
     filterset = PowerPortFilterSet
     filterset = PowerPortFilterSet
     ignore_fields = ('cable_positions',)
     ignore_fields = ('cable_positions',)
@@ -4287,7 +4291,7 @@ class PowerPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
 
 
 
-class PowerOutletTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFilterSetTests):
+class PowerOutletTestCase(TestCase, DeviceComponentFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = PowerOutlet.objects.all()
     queryset = PowerOutlet.objects.all()
     filterset = PowerOutletFilterSet
     filterset = PowerOutletFilterSet
     ignore_fields = ('cable_positions',)
     ignore_fields = ('cable_positions',)
@@ -4572,7 +4576,7 @@ class PowerOutletTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedF
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
 
 
 
 
-class InterfaceTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFilterSetTests):
+class InterfaceTestCase(TestCase, DeviceComponentFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = Interface.objects.all()
     queryset = Interface.objects.all()
     filterset = InterfaceFilterSet
     filterset = InterfaceFilterSet
     ignore_fields = ('tagged_vlans', 'untagged_vlan', 'qinq_svlan', 'vdcs', 'cable_positions')
     ignore_fields = ('tagged_vlans', 'untagged_vlan', 'qinq_svlan', 'vdcs', 'cable_positions')
@@ -5325,7 +5329,7 @@ class InterfaceTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
 
 
 
-class FrontPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFilterSetTests):
+class FrontPortTestCase(TestCase, DeviceComponentFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = FrontPort.objects.all()
     queryset = FrontPort.objects.all()
     filterset = FrontPortFilterSet
     filterset = FrontPortFilterSet
     ignore_fields = ('cable_positions',)
     ignore_fields = ('cable_positions',)
@@ -5630,7 +5634,7 @@ class FrontPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class RearPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFilterSetTests):
+class RearPortTestCase(TestCase, DeviceComponentFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = RearPort.objects.all()
     queryset = RearPort.objects.all()
     filterset = RearPortFilterSet
     filterset = RearPortFilterSet
     ignore_fields = ('cable_positions',)
     ignore_fields = ('cable_positions',)
@@ -5920,7 +5924,7 @@ class RearPortTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFilt
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ModuleBayTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFilterSetTests):
+class ModuleBayTestCase(TestCase, DeviceComponentFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = ModuleBay.objects.all()
     queryset = ModuleBay.objects.all()
     filterset = ModuleBayFilterSet
     filterset = ModuleBayFilterSet
 
 
@@ -6109,7 +6113,7 @@ class ModuleBayTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class DeviceBayTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFilterSetTests):
+class DeviceBayTestCase(TestCase, DeviceComponentFilterSetTestMixin, ChangeLoggedFilterSetTestMixin):
     queryset = DeviceBay.objects.all()
     queryset = DeviceBay.objects.all()
     filterset = DeviceBayFilterSet
     filterset = DeviceBayFilterSet
 
 
@@ -6306,7 +6310,7 @@ class DeviceBayTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class InventoryItemTestCase(TestCase, ChangeLoggedFilterSetTests):
+class InventoryItemTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = InventoryItem.objects.all()
     queryset = InventoryItem.objects.all()
     filterset = InventoryItemFilterSet
     filterset = InventoryItemFilterSet
 
 
@@ -6581,7 +6585,7 @@ class InventoryItemTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class InventoryItemRoleTestCase(TestCase, ChangeLoggedFilterSetTests):
+class InventoryItemRoleTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = InventoryItemRole.objects.all()
     queryset = InventoryItemRole.objects.all()
     filterset = InventoryItemRoleFilterSet
     filterset = InventoryItemRoleFilterSet
 
 
@@ -6631,7 +6635,7 @@ class InventoryItemRoleTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class VirtualChassisTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VirtualChassisTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VirtualChassis.objects.all()
     queryset = VirtualChassis.objects.all()
     filterset = VirtualChassisFilterSet
     filterset = VirtualChassisFilterSet
 
 
@@ -6731,7 +6735,7 @@ class VirtualChassisTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class CableBundleTestCase(TestCase, ChangeLoggedFilterSetTests):
+class CableBundleTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = CableBundle.objects.all()
     queryset = CableBundle.objects.all()
     filterset = CableBundleFilterSet
     filterset = CableBundleFilterSet
 
 
@@ -6757,7 +6761,7 @@ class CableBundleTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class CableTestCase(TestCase, ChangeLoggedFilterSetTests):
+class CableTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Cable.objects.all()
     queryset = Cable.objects.all()
     filterset = CableFilterSet
     filterset = CableFilterSet
 
 
@@ -7136,7 +7140,7 @@ class CableTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
 
 
 
-class CableTerminationTestCase(TestCase, ChangeLoggedFilterSetTests):
+class CableTerminationTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = CableTermination.objects.all()
     queryset = CableTermination.objects.all()
     filterset = CableTerminationFilterSet
     filterset = CableTerminationFilterSet
     ignore_fields = ('connector', 'positions')
     ignore_fields = ('connector', 'positions')
@@ -7226,7 +7230,7 @@ class CableTerminationTestCase(TestCase, ChangeLoggedFilterSetTests):
                 self.assertEqual(results.first().termination_id, obj.pk)
                 self.assertEqual(results.first().termination_id, obj.pk)
 
 
 
 
-class PowerPanelTestCase(TestCase, ChangeLoggedFilterSetTests):
+class PowerPanelTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = PowerPanel.objects.all()
     queryset = PowerPanel.objects.all()
     filterset = PowerPanelFilterSet
     filterset = PowerPanelFilterSet
 
 
@@ -7310,7 +7314,7 @@ class PowerPanelTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class PowerFeedTestCase(TestCase, ChangeLoggedFilterSetTests):
+class PowerFeedTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = PowerFeed.objects.all()
     queryset = PowerFeed.objects.all()
     filterset = PowerFeedFilterSet
     filterset = PowerFeedFilterSet
     ignore_fields = ('cable_positions',)
     ignore_fields = ('cable_positions',)
@@ -7526,7 +7530,7 @@ class PowerFeedTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class VirtualDeviceContextTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VirtualDeviceContextTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VirtualDeviceContext.objects.all()
     queryset = VirtualDeviceContext.objects.all()
     filterset = VirtualDeviceContextFilterSet
     filterset = VirtualDeviceContextFilterSet
     ignore_fields = ('primary_ip4', 'primary_ip6')
     ignore_fields = ('primary_ip4', 'primary_ip6')
@@ -7683,7 +7687,7 @@ class VirtualDeviceContextTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 0)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 0)
 
 
 
 
-class MACAddressTestCase(TestCase, ChangeLoggedFilterSetTests):
+class MACAddressTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = MACAddress.objects.all()
     queryset = MACAddress.objects.all()
     filterset = MACAddressFilterSet
     filterset = MACAddressFilterSet
 
 

+ 17 - 17
netbox/extras/tests/test_filtersets.py

@@ -15,11 +15,11 @@ from extras.filtersets import *
 from extras.models import *
 from extras.models import *
 from tenancy.models import Tenant, TenantGroup
 from tenancy.models import Tenant, TenantGroup
 from users.models import Group, User
 from users.models import Group, User
-from utilities.testing import BaseFilterSetTests, ChangeLoggedFilterSetTests, create_tags
+from utilities.testing import BaseFilterSetTestMixin, ChangeLoggedFilterSetTestMixin, create_tags
 from virtualization.models import Cluster, ClusterGroup, ClusterType
 from virtualization.models import Cluster, ClusterGroup, ClusterType
 
 
 
 
-class CustomFieldTestCase(TestCase, ChangeLoggedFilterSetTests):
+class CustomFieldTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = CustomField.objects.all()
     queryset = CustomField.objects.all()
     filterset = CustomFieldFilterSet
     filterset = CustomFieldFilterSet
     ignore_fields = ('default', 'related_object_filter', 'validation_schema')
     ignore_fields = ('default', 'related_object_filter', 'validation_schema')
@@ -160,7 +160,7 @@ class CustomFieldTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class CustomFieldChoiceSetTestCase(TestCase, ChangeLoggedFilterSetTests):
+class CustomFieldChoiceSetTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = CustomFieldChoiceSet.objects.all()
     queryset = CustomFieldChoiceSet.objects.all()
     filterset = CustomFieldChoiceSetFilterSet
     filterset = CustomFieldChoiceSetFilterSet
     ignore_fields = ('extra_choices',)
     ignore_fields = ('extra_choices',)
@@ -214,7 +214,7 @@ class CustomFieldChoiceSetTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class WebhookTestCase(TestCase, BaseFilterSetTests):
+class WebhookTestCase(TestCase, BaseFilterSetTestMixin):
     queryset = Webhook.objects.all()
     queryset = Webhook.objects.all()
     filterset = WebhookFilterSet
     filterset = WebhookFilterSet
     ignore_fields = ('additional_headers', 'body_template')
     ignore_fields = ('additional_headers', 'body_template')
@@ -286,7 +286,7 @@ class WebhookTestCase(TestCase, BaseFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class EventRuleTestCase(TestCase, BaseFilterSetTests):
+class EventRuleTestCase(TestCase, BaseFilterSetTestMixin):
     queryset = EventRule.objects.all()
     queryset = EventRule.objects.all()
     filterset = EventRuleFilterSet
     filterset = EventRuleFilterSet
     ignore_fields = ('action_data', 'conditions', 'event_types')
     ignore_fields = ('action_data', 'conditions', 'event_types')
@@ -450,7 +450,7 @@ class EventRuleTestCase(TestCase, BaseFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class CustomLinkTestCase(TestCase, ChangeLoggedFilterSetTests):
+class CustomLinkTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = CustomLink.objects.all()
     queryset = CustomLink.objects.all()
     filterset = CustomLinkFilterSet
     filterset = CustomLinkFilterSet
 
 
@@ -519,7 +519,7 @@ class CustomLinkTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
 
 
 
-class SavedFilterTestCase(TestCase, ChangeLoggedFilterSetTests):
+class SavedFilterTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = SavedFilter.objects.all()
     queryset = SavedFilter.objects.all()
     filterset = SavedFilterFilterSet
     filterset = SavedFilterFilterSet
     ignore_fields = ('parameters',)
     ignore_fields = ('parameters',)
@@ -624,7 +624,7 @@ class SavedFilterTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
 
 
 
-class BookmarkTestCase(TestCase, BaseFilterSetTests):
+class BookmarkTestCase(TestCase, BaseFilterSetTestMixin):
     queryset = Bookmark.objects.all()
     queryset = Bookmark.objects.all()
     filterset = BookmarkFilterSet
     filterset = BookmarkFilterSet
 
 
@@ -693,7 +693,7 @@ class BookmarkTestCase(TestCase, BaseFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
 
 
 
-class ExportTemplateTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ExportTemplateTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ExportTemplate.objects.all()
     queryset = ExportTemplate.objects.all()
     filterset = ExportTemplateFilterSet
     filterset = ExportTemplateFilterSet
     ignore_fields = ('template_code', 'environment_params', 'data_path')
     ignore_fields = ('template_code', 'environment_params', 'data_path')
@@ -769,7 +769,7 @@ class ExportTemplateTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ImageAttachmentTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ImageAttachmentTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ImageAttachment.objects.all()
     queryset = ImageAttachment.objects.all()
     filterset = ImageAttachmentFilterSet
     filterset = ImageAttachmentFilterSet
     ignore_fields = ('image',)
     ignore_fields = ('image',)
@@ -863,7 +863,7 @@ class ImageAttachmentTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class TableConfigTestCase(TestCase, ChangeLoggedFilterSetTests):
+class TableConfigTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = TableConfig.objects.all()
     queryset = TableConfig.objects.all()
     filterset = TableConfigFilterSet
     filterset = TableConfigFilterSet
     ignore_fields = ('columns', 'ordering')
     ignore_fields = ('columns', 'ordering')
@@ -919,7 +919,7 @@ class TableConfigTestCase(TestCase, ChangeLoggedFilterSetTests):
         )
         )
 
 
 
 
-class JournalEntryTestCase(TestCase, ChangeLoggedFilterSetTests):
+class JournalEntryTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = JournalEntry.objects.all()
     queryset = JournalEntry.objects.all()
     filterset = JournalEntryFilterSet
     filterset = JournalEntryFilterSet
 
 
@@ -1022,7 +1022,7 @@ class JournalEntryTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ConfigContextProfileTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ConfigContextProfileTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ConfigContextProfile.objects.all()
     queryset = ConfigContextProfile.objects.all()
     filterset = ConfigContextProfileFilterSet
     filterset = ConfigContextProfileFilterSet
     ignore_fields = ('schema', 'data_path')
     ignore_fields = ('schema', 'data_path')
@@ -1055,7 +1055,7 @@ class ConfigContextProfileTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ConfigContextTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ConfigContextTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ConfigContext.objects.all()
     queryset = ConfigContext.objects.all()
     filterset = ConfigContextFilterSet
     filterset = ConfigContextFilterSet
     ignore_fields = ('data', 'data_path')
     ignore_fields = ('data', 'data_path')
@@ -1298,7 +1298,7 @@ class ConfigContextTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ConfigTemplateTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ConfigTemplateTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ConfigTemplate.objects.all()
     queryset = ConfigTemplate.objects.all()
     filterset = ConfigTemplateFilterSet
     filterset = ConfigTemplateFilterSet
     ignore_fields = ('template_code', 'environment_params', 'data_path')
     ignore_fields = ('template_code', 'environment_params', 'data_path')
@@ -1364,7 +1364,7 @@ class ConfigTemplateTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class TagTestCase(TestCase, ChangeLoggedFilterSetTests):
+class TagTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Tag.objects.all()
     queryset = Tag.objects.all()
     filterset = TagFilterSet
     filterset = TagFilterSet
     ignore_fields = (
     ignore_fields = (
@@ -1687,7 +1687,7 @@ class ChangeLoggedFilterSetTestCase(TestCase):
         self.assertEqual(self.queryset.count(), 4)
         self.assertEqual(self.queryset.count(), 4)
 
 
 
 
-class NotificationGroupTestCase(TestCase, BaseFilterSetTests):
+class NotificationGroupTestCase(TestCase, BaseFilterSetTestMixin):
     queryset = NotificationGroup.objects.all()
     queryset = NotificationGroup.objects.all()
     filterset = NotificationGroupFilterSet
     filterset = NotificationGroupFilterSet
 
 

+ 21 - 21
netbox/ipam/tests/test_filtersets.py

@@ -10,13 +10,13 @@ from ipam.choices import *
 from ipam.filtersets import *
 from ipam.filtersets import *
 from ipam.models import *
 from ipam.models import *
 from tenancy.models import Tenant, TenantGroup
 from tenancy.models import Tenant, TenantGroup
-from utilities.testing import ChangeLoggedFilterSetTests, create_test_device, create_test_virtualmachine
+from utilities.testing import ChangeLoggedFilterSetTestMixin, create_test_device, create_test_virtualmachine
 from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
 from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
 from vpn.choices import L2VPNTypeChoices
 from vpn.choices import L2VPNTypeChoices
 from vpn.models import L2VPN
 from vpn.models import L2VPN
 
 
 
 
-class ASNRangeTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ASNRangeTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ASNRange.objects.all()
     queryset = ASNRange.objects.all()
     filterset = ASNRangeFilterSet
     filterset = ASNRangeFilterSet
 
 
@@ -101,7 +101,7 @@ class ASNRangeTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ASNTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ASNTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ASN.objects.all()
     queryset = ASN.objects.all()
     filterset = ASNFilterSet
     filterset = ASNFilterSet
 
 
@@ -224,7 +224,7 @@ class ASNTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class VRFTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VRFTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VRF.objects.all()
     queryset = VRF.objects.all()
     filterset = VRFFilterSet
     filterset = VRFFilterSet
 
 
@@ -234,7 +234,7 @@ class VRFTestCase(TestCase, ChangeLoggedFilterSetTests):
             return 'import_target'
             return 'import_target'
         if field.name == 'export_targets':
         if field.name == 'export_targets':
             return 'export_target'
             return 'export_target'
-        return ChangeLoggedFilterSetTests.get_m2m_filter_name(field)
+        return ChangeLoggedFilterSetTestMixin.get_m2m_filter_name(field)
 
 
     @classmethod
     @classmethod
     def setUpTestData(cls):
     def setUpTestData(cls):
@@ -328,7 +328,7 @@ class VRFTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class RouteTargetTestCase(TestCase, ChangeLoggedFilterSetTests):
+class RouteTargetTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = RouteTarget.objects.all()
     queryset = RouteTarget.objects.all()
     filterset = RouteTargetFilterSet
     filterset = RouteTargetFilterSet
 
 
@@ -342,7 +342,7 @@ class RouteTargetTestCase(TestCase, ChangeLoggedFilterSetTests):
             return 'importing_l2vpn'
             return 'importing_l2vpn'
         if field.name == 'exporting_l2vpns':
         if field.name == 'exporting_l2vpns':
             return 'exporting_l2vpn'
             return 'exporting_l2vpn'
-        return ChangeLoggedFilterSetTests.get_m2m_filter_name(field)
+        return ChangeLoggedFilterSetTestMixin.get_m2m_filter_name(field)
 
 
     @classmethod
     @classmethod
     def setUpTestData(cls):
     def setUpTestData(cls):
@@ -455,7 +455,7 @@ class RouteTargetTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class RIRTestCase(TestCase, ChangeLoggedFilterSetTests):
+class RIRTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = RIR.objects.all()
     queryset = RIR.objects.all()
     filterset = RIRFilterSet
     filterset = RIRFilterSet
 
 
@@ -495,7 +495,7 @@ class RIRTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
 
 
 
 
-class AggregateTestCase(TestCase, ChangeLoggedFilterSetTests):
+class AggregateTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Aggregate.objects.all()
     queryset = Aggregate.objects.all()
     filterset = AggregateFilterSet
     filterset = AggregateFilterSet
 
 
@@ -581,7 +581,7 @@ class AggregateTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
 
 
 
-class RoleTestCase(TestCase, ChangeLoggedFilterSetTests):
+class RoleTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Role.objects.all()
     queryset = Role.objects.all()
     filterset = RoleFilterSet
     filterset = RoleFilterSet
 
 
@@ -612,7 +612,7 @@ class RoleTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class PrefixTestCase(TestCase, ChangeLoggedFilterSetTests):
+class PrefixTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Prefix.objects.all()
     queryset = Prefix.objects.all()
     filterset = PrefixFilterSet
     filterset = PrefixFilterSet
 
 
@@ -916,7 +916,7 @@ class PrefixTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class IPRangeTestCase(TestCase, ChangeLoggedFilterSetTests):
+class IPRangeTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = IPRange.objects.all()
     queryset = IPRange.objects.all()
     filterset = IPRangeFilterSet
     filterset = IPRangeFilterSet
 
 
@@ -1130,7 +1130,7 @@ class IPRangeTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertIn(iprange, self.filterset(params, self.queryset).qs)
         self.assertIn(iprange, self.filterset(params, self.queryset).qs)
 
 
 
 
-class IPAddressTestCase(TestCase, ChangeLoggedFilterSetTests):
+class IPAddressTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = IPAddress.objects.all()
     queryset = IPAddress.objects.all()
     filterset = IPAddressFilterSet
     filterset = IPAddressFilterSet
     ignore_fields = ('fhrpgroup',)
     ignore_fields = ('fhrpgroup',)
@@ -1471,7 +1471,7 @@ class IPAddressTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class FHRPGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
+class FHRPGroupTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = FHRPGroup.objects.all()
     queryset = FHRPGroup.objects.all()
     filterset = FHRPGroupFilterSet
     filterset = FHRPGroupFilterSet
 
 
@@ -1553,7 +1553,7 @@ class FHRPGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class FHRPGroupAssignmentTestCase(TestCase, ChangeLoggedFilterSetTests):
+class FHRPGroupAssignmentTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = FHRPGroupAssignment.objects.all()
     queryset = FHRPGroupAssignment.objects.all()
     filterset = FHRPGroupAssignmentFilterSet
     filterset = FHRPGroupAssignmentFilterSet
 
 
@@ -1626,7 +1626,7 @@ class FHRPGroupAssignmentTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
 
 
 
 
-class VLANGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VLANGroupTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VLANGroup.objects.all()
     queryset = VLANGroup.objects.all()
     filterset = VLANGroupFilterSet
     filterset = VLANGroupFilterSet
     ignore_fields = ('vid_ranges',)
     ignore_fields = ('vid_ranges',)
@@ -1806,7 +1806,7 @@ class VLANGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
 
 
 
 
-class VLANTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VLANTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VLAN.objects.all()
     queryset = VLAN.objects.all()
     filterset = VLANFilterSet
     filterset = VLANFilterSet
     ignore_fields = ('interfaces_as_tagged', 'vminterfaces_as_tagged')
     ignore_fields = ('interfaces_as_tagged', 'vminterfaces_as_tagged')
@@ -2272,7 +2272,7 @@ class VLANTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class VLANTranslationPolicyTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VLANTranslationPolicyTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VLANTranslationPolicy.objects.all()
     queryset = VLANTranslationPolicy.objects.all()
     filterset = VLANTranslationPolicyFilterSet
     filterset = VLANTranslationPolicyFilterSet
 
 
@@ -2304,7 +2304,7 @@ class VLANTranslationPolicyTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class VLANTranslationRuleTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VLANTranslationRuleTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VLANTranslationRule.objects.all()
     queryset = VLANTranslationRule.objects.all()
     filterset = VLANTranslationRuleFilterSet
     filterset = VLANTranslationRuleFilterSet
 
 
@@ -2365,7 +2365,7 @@ class VLANTranslationRuleTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ServiceTemplateTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ServiceTemplateTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ServiceTemplate.objects.all()
     queryset = ServiceTemplate.objects.all()
     filterset = ServiceTemplateFilterSet
     filterset = ServiceTemplateFilterSet
 
 
@@ -2508,7 +2508,7 @@ class ServiceTemplateTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ServiceTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ServiceTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Service.objects.all()
     queryset = Service.objects.all()
     filterset = ServiceFilterSet
     filterset = ServiceFilterSet
 
 

+ 2 - 2
netbox/netbox/tests/test_model_test_coverage.py

@@ -9,7 +9,7 @@ from django.urls import NoReverseMatch
 from core.filtersets import ObjectTypeFilterSet
 from core.filtersets import ObjectTypeFilterSet
 from core.models import ObjectType
 from core.models import ObjectType
 from netbox.registry import registry
 from netbox.registry import registry
-from utilities.testing import APITestCase, BaseFilterSetTests, ModelViewTestCase
+from utilities.testing import APITestCase, BaseFilterSetTestMixin, ModelViewTestCase
 from utilities.views import get_action_url
 from utilities.views import get_action_url
 
 
 
 
@@ -209,7 +209,7 @@ class ModelTestCoverageTestCase(TestCase):
         covered = self.collect_covered_models(
         covered = self.collect_covered_models(
             app_labels,
             app_labels,
             'test_filtersets',
             'test_filtersets',
-            BaseFilterSetTests,
+            BaseFilterSetTestMixin,
             get_queryset_model,
             get_queryset_model,
         )
         )
 
 

+ 7 - 7
netbox/tenancy/tests/test_filtersets.py

@@ -4,10 +4,10 @@ from core.models import ObjectType
 from dcim.models import Manufacturer, Site
 from dcim.models import Manufacturer, Site
 from tenancy.filtersets import *
 from tenancy.filtersets import *
 from tenancy.models import *
 from tenancy.models import *
-from utilities.testing import ChangeLoggedFilterSetTests
+from utilities.testing import ChangeLoggedFilterSetTestMixin
 
 
 
 
-class TenantGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
+class TenantGroupTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = TenantGroup.objects.all()
     queryset = TenantGroup.objects.all()
     filterset = TenantGroupFilterSet
     filterset = TenantGroupFilterSet
 
 
@@ -95,7 +95,7 @@ class TenantGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
 
 
 
-class TenantTestCase(TestCase, ChangeLoggedFilterSetTests):
+class TenantTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Tenant.objects.all()
     queryset = Tenant.objects.all()
     filterset = TenantFilterSet
     filterset = TenantFilterSet
 
 
@@ -141,7 +141,7 @@ class TenantTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ContactGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ContactGroupTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ContactGroup.objects.all()
     queryset = ContactGroup.objects.all()
     filterset = ContactGroupFilterSet
     filterset = ContactGroupFilterSet
 
 
@@ -229,7 +229,7 @@ class ContactGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
 
 
 
-class ContactRoleTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ContactRoleTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ContactRole.objects.all()
     queryset = ContactRole.objects.all()
     filterset = ContactRoleFilterSet
     filterset = ContactRoleFilterSet
 
 
@@ -260,7 +260,7 @@ class ContactRoleTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ContactTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ContactTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Contact.objects.all()
     queryset = Contact.objects.all()
     filterset = ContactFilterSet
     filterset = ContactFilterSet
     ignore_fields = ('groups',)
     ignore_fields = ('groups',)
@@ -306,7 +306,7 @@ class ContactTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ContactAssignmentTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ContactAssignmentTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ContactAssignment.objects.all()
     queryset = ContactAssignment.objects.all()
     filterset = ContactAssignmentFilterSet
     filterset = ContactAssignmentFilterSet
 
 

+ 7 - 7
netbox/users/tests/test_filtersets.py

@@ -6,10 +6,10 @@ from django.utils.timezone import make_aware
 from core.models import ObjectType
 from core.models import ObjectType
 from users import filtersets
 from users import filtersets
 from users.models import Group, ObjectPermission, Owner, OwnerGroup, Token, User
 from users.models import Group, ObjectPermission, Owner, OwnerGroup, Token, User
-from utilities.testing import BaseFilterSetTests
+from utilities.testing import BaseFilterSetTestMixin
 
 
 
 
-class UserTestCase(TestCase, BaseFilterSetTests):
+class UserTestCase(TestCase, BaseFilterSetTestMixin):
     queryset = User.objects.all()
     queryset = User.objects.all()
     filterset = filtersets.UserFilterSet
     filterset = filtersets.UserFilterSet
     ignore_fields = ('config', 'dashboard', 'password', 'user_permissions')
     ignore_fields = ('config', 'dashboard', 'password', 'user_permissions')
@@ -114,7 +114,7 @@ class UserTestCase(TestCase, BaseFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class GroupTestCase(TestCase, BaseFilterSetTests):
+class GroupTestCase(TestCase, BaseFilterSetTestMixin):
     queryset = Group.objects.all()
     queryset = Group.objects.all()
     filterset = filtersets.GroupFilterSet
     filterset = filtersets.GroupFilterSet
     ignore_fields = ('permissions',)
     ignore_fields = ('permissions',)
@@ -168,7 +168,7 @@ class GroupTestCase(TestCase, BaseFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ObjectPermissionTestCase(TestCase, BaseFilterSetTests):
+class ObjectPermissionTestCase(TestCase, BaseFilterSetTestMixin):
     queryset = ObjectPermission.objects.all()
     queryset = ObjectPermission.objects.all()
     filterset = filtersets.ObjectPermissionFilterSet
     filterset = filtersets.ObjectPermissionFilterSet
     ignore_fields = ('actions', 'constraints')
     ignore_fields = ('actions', 'constraints')
@@ -263,7 +263,7 @@ class ObjectPermissionTestCase(TestCase, BaseFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
 
 
 
-class TokenTestCase(TestCase, BaseFilterSetTests):
+class TokenTestCase(TestCase, BaseFilterSetTestMixin):
     queryset = Token.objects.all()
     queryset = Token.objects.all()
     filterset = filtersets.TokenFilterSet
     filterset = filtersets.TokenFilterSet
     ignore_fields = ('plaintext', 'hmac_digest', 'allowed_ips')
     ignore_fields = ('plaintext', 'hmac_digest', 'allowed_ips')
@@ -359,7 +359,7 @@ class TokenTestCase(TestCase, BaseFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class OwnerGroupTestCase(TestCase, BaseFilterSetTests):
+class OwnerGroupTestCase(TestCase, BaseFilterSetTestMixin):
     queryset = OwnerGroup.objects.all()
     queryset = OwnerGroup.objects.all()
     filterset = filtersets.OwnerGroupFilterSet
     filterset = filtersets.OwnerGroupFilterSet
 
 
@@ -386,7 +386,7 @@ class OwnerGroupTestCase(TestCase, BaseFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class OwnerTestCase(TestCase, BaseFilterSetTests):
+class OwnerTestCase(TestCase, BaseFilterSetTestMixin):
     queryset = Owner.objects.all()
     queryset = Owner.objects.all()
     filterset = filtersets.OwnerFilterSet
     filterset = filtersets.OwnerFilterSet
 
 

+ 4 - 4
netbox/utilities/testing/filtersets.py

@@ -13,8 +13,8 @@ from netbox.models.ltree import LtreeModel
 from utilities.filters import MultiValueContentTypeFilter, TreeNodeMultipleChoiceFilter
 from utilities.filters import MultiValueContentTypeFilter, TreeNodeMultipleChoiceFilter
 
 
 __all__ = (
 __all__ = (
-    'BaseFilterSetTests',
-    'ChangeLoggedFilterSetTests',
+    'BaseFilterSetTestMixin',
+    'ChangeLoggedFilterSetTestMixin',
 )
 )
 
 
 EXEMPT_MODEL_FIELDS = (
 EXEMPT_MODEL_FIELDS = (
@@ -25,7 +25,7 @@ EXEMPT_MODEL_FIELDS = (
 )
 )
 
 
 
 
-class BaseFilterSetTests:
+class BaseFilterSetTestMixin:
     queryset = None
     queryset = None
     filterset = None
     filterset = None
     ignore_fields = tuple()
     ignore_fields = tuple()
@@ -150,7 +150,7 @@ class BaseFilterSetTests:
                     )
                     )
 
 
 
 
-class ChangeLoggedFilterSetTests(BaseFilterSetTests):
+class ChangeLoggedFilterSetTestMixin(BaseFilterSetTestMixin):
 
 
     def test_created(self):
     def test_created(self):
         pk_list = self.queryset.values_list('pk', flat=True)[:2]
         pk_list = self.queryset.values_list('pk', flat=True)[:2]

+ 8 - 8
netbox/virtualization/tests/test_filtersets.py

@@ -5,13 +5,13 @@ from dcim.models import Device, DeviceRole, MACAddress, Platform, Region, Site,
 from ipam.choices import VLANQinQRoleChoices
 from ipam.choices import VLANQinQRoleChoices
 from ipam.models import VLAN, VRF, IPAddress, VLANTranslationPolicy
 from ipam.models import VLAN, VRF, IPAddress, VLANTranslationPolicy
 from tenancy.models import Tenant, TenantGroup
 from tenancy.models import Tenant, TenantGroup
-from utilities.testing import ChangeLoggedFilterSetTests, create_test_device
+from utilities.testing import ChangeLoggedFilterSetTestMixin, create_test_device
 from virtualization.choices import *
 from virtualization.choices import *
 from virtualization.filtersets import *
 from virtualization.filtersets import *
 from virtualization.models import *
 from virtualization.models import *
 
 
 
 
-class ClusterTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ClusterTypeTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ClusterType.objects.all()
     queryset = ClusterType.objects.all()
     filterset = ClusterTypeFilterSet
     filterset = ClusterTypeFilterSet
 
 
@@ -42,7 +42,7 @@ class ClusterTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ClusterGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ClusterGroupTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = ClusterGroup.objects.all()
     queryset = ClusterGroup.objects.all()
     filterset = ClusterGroupFilterSet
     filterset = ClusterGroupFilterSet
 
 
@@ -73,7 +73,7 @@ class ClusterGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class ClusterTestCase(TestCase, ChangeLoggedFilterSetTests):
+class ClusterTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Cluster.objects.all()
     queryset = Cluster.objects.all()
     filterset = ClusterFilterSet
     filterset = ClusterFilterSet
 
 
@@ -230,7 +230,7 @@ class ClusterTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class VirtualMachineTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VirtualMachineTypeTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VirtualMachineType.objects.all()
     queryset = VirtualMachineType.objects.all()
     filterset = VirtualMachineTypeFilterSet
     filterset = VirtualMachineTypeFilterSet
 
 
@@ -340,7 +340,7 @@ class VirtualMachineTypeTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class VirtualMachineTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VirtualMachineTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VirtualMachine.objects.all()
     queryset = VirtualMachine.objects.all()
     filterset = VirtualMachineFilterSet
     filterset = VirtualMachineFilterSet
 
 
@@ -700,7 +700,7 @@ class VirtualMachineTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class VMInterfaceTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VMInterfaceTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VMInterface.objects.all()
     queryset = VMInterface.objects.all()
     filterset = VMInterfaceFilterSet
     filterset = VMInterfaceFilterSet
     ignore_fields = ('tagged_vlans', 'untagged_vlan', 'qinq_svlan')
     ignore_fields = ('tagged_vlans', 'untagged_vlan', 'qinq_svlan')
@@ -880,7 +880,7 @@ class VMInterfaceTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class VirtualDiskTestCase(TestCase, ChangeLoggedFilterSetTests):
+class VirtualDiskTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = VirtualDisk.objects.all()
     queryset = VirtualDisk.objects.all()
     filterset = VirtualDiskFilterSet
     filterset = VirtualDiskFilterSet
 
 

+ 12 - 12
netbox/vpn/tests/test_filtersets.py

@@ -3,14 +3,14 @@ from django.test import TestCase
 from dcim.choices import InterfaceTypeChoices
 from dcim.choices import InterfaceTypeChoices
 from dcim.models import Device, Interface, Site
 from dcim.models import Device, Interface, Site
 from ipam.models import VLAN, IPAddress, RouteTarget
 from ipam.models import VLAN, IPAddress, RouteTarget
-from utilities.testing import ChangeLoggedFilterSetTests, create_test_device, create_test_virtualmachine
+from utilities.testing import ChangeLoggedFilterSetTestMixin, create_test_device, create_test_virtualmachine
 from virtualization.models import VirtualMachine, VMInterface
 from virtualization.models import VirtualMachine, VMInterface
 from vpn.choices import *
 from vpn.choices import *
 from vpn.filtersets import *
 from vpn.filtersets import *
 from vpn.models import *
 from vpn.models import *
 
 
 
 
-class TunnelGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
+class TunnelGroupTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = TunnelGroup.objects.all()
     queryset = TunnelGroup.objects.all()
     filterset = TunnelGroupFilterSet
     filterset = TunnelGroupFilterSet
 
 
@@ -40,7 +40,7 @@ class TunnelGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class TunnelTestCase(TestCase, ChangeLoggedFilterSetTests):
+class TunnelTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = Tunnel.objects.all()
     queryset = Tunnel.objects.all()
     filterset = TunnelFilterSet
     filterset = TunnelFilterSet
 
 
@@ -162,7 +162,7 @@ class TunnelTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class TunnelTerminationTestCase(TestCase, ChangeLoggedFilterSetTests):
+class TunnelTerminationTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = TunnelTermination.objects.all()
     queryset = TunnelTermination.objects.all()
     filterset = TunnelTerminationFilterSet
     filterset = TunnelTerminationFilterSet
 
 
@@ -293,7 +293,7 @@ class TunnelTerminationTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class IKEProposalTestCase(TestCase, ChangeLoggedFilterSetTests):
+class IKEProposalTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = IKEProposal.objects.all()
     queryset = IKEProposal.objects.all()
     filterset = IKEProposalFilterSet
     filterset = IKEProposalFilterSet
 
 
@@ -386,7 +386,7 @@ class IKEProposalTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class IKEPolicyTestCase(TestCase, ChangeLoggedFilterSetTests):
+class IKEPolicyTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = IKEPolicy.objects.all()
     queryset = IKEPolicy.objects.all()
     filterset = IKEPolicyFilterSet
     filterset = IKEPolicyFilterSet
 
 
@@ -470,7 +470,7 @@ class IKEPolicyTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class IPSecProposalTestCase(TestCase, ChangeLoggedFilterSetTests):
+class IPSecProposalTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = IPSecProposal.objects.all()
     queryset = IPSecProposal.objects.all()
     filterset = IPSecProposalFilterSet
     filterset = IPSecProposalFilterSet
 
 
@@ -554,7 +554,7 @@ class IPSecProposalTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class IPSecPolicyTestCase(TestCase, ChangeLoggedFilterSetTests):
+class IPSecPolicyTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = IPSecPolicy.objects.all()
     queryset = IPSecPolicy.objects.all()
     filterset = IPSecPolicyFilterSet
     filterset = IPSecPolicyFilterSet
 
 
@@ -625,7 +625,7 @@ class IPSecPolicyTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class IPSecProfileTestCase(TestCase, ChangeLoggedFilterSetTests):
+class IPSecProfileTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = IPSecProfile.objects.all()
     queryset = IPSecProfile.objects.all()
     filterset = IPSecProfileFilterSet
     filterset = IPSecProfileFilterSet
 
 
@@ -739,7 +739,7 @@ class IPSecProfileTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class L2VPNTestCase(TestCase, ChangeLoggedFilterSetTests):
+class L2VPNTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = L2VPN.objects.all()
     queryset = L2VPN.objects.all()
     filterset = L2VPNFilterSet
     filterset = L2VPNFilterSet
 
 
@@ -749,7 +749,7 @@ class L2VPNTestCase(TestCase, ChangeLoggedFilterSetTests):
             return 'import_target'
             return 'import_target'
         if field.name == 'export_targets':
         if field.name == 'export_targets':
             return 'export_target'
             return 'export_target'
-        return ChangeLoggedFilterSetTests.get_m2m_filter_name(field)
+        return ChangeLoggedFilterSetTestMixin.get_m2m_filter_name(field)
 
 
     @classmethod
     @classmethod
     def setUpTestData(cls):
     def setUpTestData(cls):
@@ -845,7 +845,7 @@ class L2VPNTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class L2VPNTerminationTestCase(TestCase, ChangeLoggedFilterSetTests):
+class L2VPNTerminationTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = L2VPNTermination.objects.all()
     queryset = L2VPNTermination.objects.all()
     filterset = L2VPNTerminationFilterSet
     filterset = L2VPNTerminationFilterSet
 
 

+ 4 - 4
netbox/wireless/tests/test_filtersets.py

@@ -5,13 +5,13 @@ from dcim.models import Interface, Location, Region, Site, SiteGroup
 from ipam.models import VLAN
 from ipam.models import VLAN
 from netbox.choices import DistanceUnitChoices
 from netbox.choices import DistanceUnitChoices
 from tenancy.models import Tenant
 from tenancy.models import Tenant
-from utilities.testing import ChangeLoggedFilterSetTests, create_test_device
+from utilities.testing import ChangeLoggedFilterSetTestMixin, create_test_device
 from wireless.choices import *
 from wireless.choices import *
 from wireless.filtersets import *
 from wireless.filtersets import *
 from wireless.models import *
 from wireless.models import *
 
 
 
 
-class WirelessLANGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
+class WirelessLANGroupTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = WirelessLANGroup.objects.all()
     queryset = WirelessLANGroup.objects.all()
     filterset = WirelessLANGroupFilterSet
     filterset = WirelessLANGroupFilterSet
 
 
@@ -104,7 +104,7 @@ class WirelessLANGroupTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8)
 
 
 
 
-class WirelessLANTestCase(TestCase, ChangeLoggedFilterSetTests):
+class WirelessLANTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = WirelessLAN.objects.all()
     queryset = WirelessLAN.objects.all()
     filterset = WirelessLANFilterSet
     filterset = WirelessLANFilterSet
 
 
@@ -309,7 +309,7 @@ class WirelessLANTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 
 
-class WirelessLinkTestCase(TestCase, ChangeLoggedFilterSetTests):
+class WirelessLinkTestCase(TestCase, ChangeLoggedFilterSetTestMixin):
     queryset = WirelessLink.objects.all()
     queryset = WirelessLink.objects.all()
     filterset = WirelessLinkFilterSet
     filterset = WirelessLinkFilterSet