From 5cb7af88d4e9150a0d3516c624f27d63b1553f22 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 6 Mar 2024 08:33:58 -0500 Subject: [PATCH] Fix remaining tests --- netbox/dcim/filtersets.py | 10 ++++++++++ netbox/dcim/tests/test_filtersets.py | 2 +- netbox/ipam/filtersets.py | 11 ++++++++--- netbox/ipam/tests/test_filtersets.py | 1 + netbox/users/tests/test_filtersets.py | 2 +- netbox/utilities/testing/filtersets.py | 6 +++++- 6 files changed, 26 insertions(+), 6 deletions(-) diff --git a/netbox/dcim/filtersets.py b/netbox/dcim/filtersets.py index c22e84d51..f0fc4ac60 100644 --- a/netbox/dcim/filtersets.py +++ b/netbox/dcim/filtersets.py @@ -1004,6 +1004,11 @@ class DeviceFilterSet( queryset=Rack.objects.all(), label=_('Rack (ID)'), ) + parent_bay_id = django_filters.ModelMultipleChoiceFilter( + field_name='parent_bay', + queryset=DeviceBay.objects.all(), + label=_('Parent bay (ID)'), + ) cluster_id = django_filters.ModelMultipleChoiceFilter( queryset=Cluster.objects.all(), label=_('VM cluster (ID)'), @@ -1695,6 +1700,11 @@ class RearPortFilterSet( class ModuleBayFilterSet(DeviceComponentFilterSet, NetBoxModelFilterSet): + installed_module_id = django_filters.ModelMultipleChoiceFilter( + field_name='installed_module', + queryset=ModuleBay.objects.all(), + label=_('Installed module (ID)'), + ) class Meta: model = ModuleBay diff --git a/netbox/dcim/tests/test_filtersets.py b/netbox/dcim/tests/test_filtersets.py index 8ec1da713..e9bee9322 100644 --- a/netbox/dcim/tests/test_filtersets.py +++ b/netbox/dcim/tests/test_filtersets.py @@ -1884,7 +1884,7 @@ class PlatformTestCase(TestCase, ChangeLoggedFilterSetTests): class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Device.objects.all() filterset = DeviceFilterSet - ignore_fields = ('primary_ip4', 'primary_ip6', 'oob_ip', 'local_context_data') + ignore_fields = ('local_context_data', 'oob_ip', 'primary_ip4', 'primary_ip6', 'vc_master_for') @classmethod def setUpTestData(cls): diff --git a/netbox/ipam/filtersets.py b/netbox/ipam/filtersets.py index 177e0cef2..c95863be8 100644 --- a/netbox/ipam/filtersets.py +++ b/netbox/ipam/filtersets.py @@ -849,7 +849,7 @@ class VLANGroupFilterSet(OrganizationalModelFilterSet): region = django_filters.NumberFilter( method='filter_scope' ) - sitegroup = django_filters.NumberFilter( + site_group = django_filters.NumberFilter( method='filter_scope' ) site = django_filters.NumberFilter( @@ -861,13 +861,17 @@ class VLANGroupFilterSet(OrganizationalModelFilterSet): rack = django_filters.NumberFilter( method='filter_scope' ) - clustergroup = django_filters.NumberFilter( + cluster_group = django_filters.NumberFilter( method='filter_scope' ) cluster = django_filters.NumberFilter( method='filter_scope' ) + # TODO: Remove in v4.1 + sitegroup = site_group + clustergroup = cluster_group + class Meta: model = VLANGroup fields = ['id', 'name', 'slug', 'min_vid', 'max_vid', 'description', 'scope_id'] @@ -882,8 +886,9 @@ class VLANGroupFilterSet(OrganizationalModelFilterSet): return queryset.filter(qs_filter) def filter_scope(self, queryset, name, value): + model_name = name.replace('_', '') return queryset.filter( - scope_type=ContentType.objects.get(model=name), + scope_type=ContentType.objects.get(model=model_name), scope_id=value ) diff --git a/netbox/ipam/tests/test_filtersets.py b/netbox/ipam/tests/test_filtersets.py index 3eecadb06..f69e2d2f4 100644 --- a/netbox/ipam/tests/test_filtersets.py +++ b/netbox/ipam/tests/test_filtersets.py @@ -922,6 +922,7 @@ class IPRangeTestCase(TestCase, ChangeLoggedFilterSetTests): class IPAddressTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = IPAddress.objects.all() filterset = IPAddressFilterSet + ignore_fields = ('fhrpgroup',) @classmethod def setUpTestData(cls): diff --git a/netbox/users/tests/test_filtersets.py b/netbox/users/tests/test_filtersets.py index 5349244f7..7f41746fd 100644 --- a/netbox/users/tests/test_filtersets.py +++ b/netbox/users/tests/test_filtersets.py @@ -15,7 +15,7 @@ User = get_user_model() class UserTestCase(TestCase, BaseFilterSetTests): queryset = User.objects.all() filterset = filtersets.UserFilterSet - ignore_fields = ('password',) + ignore_fields = ('config', 'dashboard', 'password') @classmethod def setUpTestData(cls): diff --git a/netbox/utilities/testing/filtersets.py b/netbox/utilities/testing/filtersets.py index 7b19f2408..a5a5bf999 100644 --- a/netbox/utilities/testing/filtersets.py +++ b/netbox/utilities/testing/filtersets.py @@ -106,7 +106,11 @@ class BaseFilterSetTests: # All other fields else: - self.assertIn(model_field.name, filterset_fields, f'No filter found for {model_field.name}!') + self.assertIn( + model_field.name, + filterset_fields, + f'No filter found for {model_field.name} ({type(model_field)})!' + ) class ChangeLoggedFilterSetTests(BaseFilterSetTests):