Fix remaining tests

This commit is contained in:
Jeremy Stretch 2024-03-06 08:33:58 -05:00
parent 16b422cbac
commit 5cb7af88d4
6 changed files with 26 additions and 6 deletions

View File

@ -1004,6 +1004,11 @@ class DeviceFilterSet(
queryset=Rack.objects.all(), queryset=Rack.objects.all(),
label=_('Rack (ID)'), 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( cluster_id = django_filters.ModelMultipleChoiceFilter(
queryset=Cluster.objects.all(), queryset=Cluster.objects.all(),
label=_('VM cluster (ID)'), label=_('VM cluster (ID)'),
@ -1695,6 +1700,11 @@ class RearPortFilterSet(
class ModuleBayFilterSet(DeviceComponentFilterSet, NetBoxModelFilterSet): class ModuleBayFilterSet(DeviceComponentFilterSet, NetBoxModelFilterSet):
installed_module_id = django_filters.ModelMultipleChoiceFilter(
field_name='installed_module',
queryset=ModuleBay.objects.all(),
label=_('Installed module (ID)'),
)
class Meta: class Meta:
model = ModuleBay model = ModuleBay

View File

@ -1884,7 +1884,7 @@ class PlatformTestCase(TestCase, ChangeLoggedFilterSetTests):
class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests): class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
queryset = Device.objects.all() queryset = Device.objects.all()
filterset = DeviceFilterSet 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 @classmethod
def setUpTestData(cls): def setUpTestData(cls):

View File

@ -849,7 +849,7 @@ class VLANGroupFilterSet(OrganizationalModelFilterSet):
region = django_filters.NumberFilter( region = django_filters.NumberFilter(
method='filter_scope' method='filter_scope'
) )
sitegroup = django_filters.NumberFilter( site_group = django_filters.NumberFilter(
method='filter_scope' method='filter_scope'
) )
site = django_filters.NumberFilter( site = django_filters.NumberFilter(
@ -861,13 +861,17 @@ class VLANGroupFilterSet(OrganizationalModelFilterSet):
rack = django_filters.NumberFilter( rack = django_filters.NumberFilter(
method='filter_scope' method='filter_scope'
) )
clustergroup = django_filters.NumberFilter( cluster_group = django_filters.NumberFilter(
method='filter_scope' method='filter_scope'
) )
cluster = django_filters.NumberFilter( cluster = django_filters.NumberFilter(
method='filter_scope' method='filter_scope'
) )
# TODO: Remove in v4.1
sitegroup = site_group
clustergroup = cluster_group
class Meta: class Meta:
model = VLANGroup model = VLANGroup
fields = ['id', 'name', 'slug', 'min_vid', 'max_vid', 'description', 'scope_id'] fields = ['id', 'name', 'slug', 'min_vid', 'max_vid', 'description', 'scope_id']
@ -882,8 +886,9 @@ class VLANGroupFilterSet(OrganizationalModelFilterSet):
return queryset.filter(qs_filter) return queryset.filter(qs_filter)
def filter_scope(self, queryset, name, value): def filter_scope(self, queryset, name, value):
model_name = name.replace('_', '')
return queryset.filter( return queryset.filter(
scope_type=ContentType.objects.get(model=name), scope_type=ContentType.objects.get(model=model_name),
scope_id=value scope_id=value
) )

View File

@ -922,6 +922,7 @@ class IPRangeTestCase(TestCase, ChangeLoggedFilterSetTests):
class IPAddressTestCase(TestCase, ChangeLoggedFilterSetTests): class IPAddressTestCase(TestCase, ChangeLoggedFilterSetTests):
queryset = IPAddress.objects.all() queryset = IPAddress.objects.all()
filterset = IPAddressFilterSet filterset = IPAddressFilterSet
ignore_fields = ('fhrpgroup',)
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):

View File

@ -15,7 +15,7 @@ User = get_user_model()
class UserTestCase(TestCase, BaseFilterSetTests): class UserTestCase(TestCase, BaseFilterSetTests):
queryset = User.objects.all() queryset = User.objects.all()
filterset = filtersets.UserFilterSet filterset = filtersets.UserFilterSet
ignore_fields = ('password',) ignore_fields = ('config', 'dashboard', 'password')
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):

View File

@ -106,7 +106,11 @@ class BaseFilterSetTests:
# All other fields # All other fields
else: 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): class ChangeLoggedFilterSetTests(BaseFilterSetTests):