diff --git a/netbox/circuits/filters.py b/netbox/circuits/filters.py index b8d97d77d..206dcc305 100644 --- a/netbox/circuits/filters.py +++ b/netbox/circuits/filters.py @@ -51,7 +51,7 @@ class ProviderFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilte class Meta: model = Provider - fields = ['name', 'slug', 'asn', 'account'] + fields = ['id', 'name', 'slug', 'asn', 'account'] def search(self, queryset, name, value): if not value.strip(): @@ -129,7 +129,7 @@ class CircuitFilterSet(BaseFilterSet, CustomFieldFilterSet, TenancyFilterSet, Cr class Meta: model = Circuit - fields = ['cid', 'install_date', 'commit_rate'] + fields = ['id', 'cid', 'install_date', 'commit_rate'] def search(self, queryset, name, value): if not value.strip(): diff --git a/netbox/circuits/tests/test_filters.py b/netbox/circuits/tests/test_filters.py index 346d2ad80..9756c320b 100644 --- a/netbox/circuits/tests/test_filters.py +++ b/netbox/circuits/tests/test_filters.py @@ -54,6 +54,10 @@ class ProviderTestCase(TestCase): CircuitTermination(circuit=circuits[1], site=sites[0], term_side='A', port_speed=1000), )) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_name(self): params = {'name': ['Provider 1', 'Provider 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -178,6 +182,10 @@ class CircuitTestCase(TestCase): )) CircuitTermination.objects.bulk_create(circuit_terminations) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_cid(self): params = {'cid': ['Test Circuit 1', 'Test Circuit 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index 1fa7e7210..5bc6dd7f0 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -301,7 +301,7 @@ class RackReservationFilterSet(BaseFilterSet, TenancyFilterSet): class Meta: model = RackReservation - fields = ['created'] + fields = ['id', 'created'] def search(self, queryset, name, value): if not value.strip(): @@ -369,7 +369,7 @@ class DeviceTypeFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFil class Meta: model = DeviceType fields = [ - 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'subdevice_role', + 'id', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'subdevice_role', ] def search(self, queryset, name, value): @@ -1268,7 +1268,7 @@ class PowerPanelFilterSet(BaseFilterSet): class Meta: model = PowerPanel - fields = ['name'] + fields = ['id', 'name'] def search(self, queryset, name, value): if not value.strip(): @@ -1321,7 +1321,7 @@ class PowerFeedFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilt class Meta: model = PowerFeed - fields = ['name', 'status', 'type', 'supply', 'phase', 'voltage', 'amperage', 'max_utilization'] + fields = ['id', 'name', 'status', 'type', 'supply', 'phase', 'voltage', 'amperage', 'max_utilization'] def search(self, queryset, name, value): if not value.strip(): diff --git a/netbox/dcim/tests/test_filters.py b/netbox/dcim/tests/test_filters.py index 3158596fc..6c261f025 100644 --- a/netbox/dcim/tests/test_filters.py +++ b/netbox/dcim/tests/test_filters.py @@ -42,8 +42,7 @@ class RegionTestCase(TestCase): region.save() def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -104,8 +103,7 @@ class SiteTestCase(TestCase): Site.objects.bulk_create(sites) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -209,8 +207,7 @@ class RackGroupTestCase(TestCase): rackgroup.save() def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -262,8 +259,7 @@ class RackRoleTestCase(TestCase): RackRole.objects.bulk_create(rack_roles) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -339,8 +335,7 @@ class RackTestCase(TestCase): Rack.objects.bulk_create(racks) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -499,6 +494,10 @@ class RackReservationTestCase(TestCase): ) RackReservation.objects.bulk_create(reservations) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_site(self): sites = Site.objects.all()[:2] params = {'site_id': [sites[0].pk, sites[1].pk]} @@ -551,8 +550,7 @@ class ManufacturerTestCase(TestCase): Manufacturer.objects.bulk_create(manufacturers) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -624,6 +622,10 @@ class DeviceTypeTestCase(TestCase): DeviceBayTemplate(device_type=device_types[1], name='Device Bay 2'), )) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_model(self): params = {'model': ['Model 1', 'Model 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -723,8 +725,7 @@ class ConsolePortTemplateTestCase(TestCase): )) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -760,8 +761,7 @@ class ConsoleServerPortTemplateTestCase(TestCase): )) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -797,8 +797,7 @@ class PowerPortTemplateTestCase(TestCase): )) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -842,8 +841,7 @@ class PowerOutletTemplateTestCase(TestCase): )) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -884,8 +882,7 @@ class InterfaceTemplateTestCase(TestCase): )) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -939,8 +936,7 @@ class FrontPortTemplateTestCase(TestCase): )) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -981,8 +977,7 @@ class RearPortTemplateTestCase(TestCase): )) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -1027,8 +1022,7 @@ class DeviceBayTemplateTestCase(TestCase): )) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -1056,8 +1050,7 @@ class DeviceRoleTestCase(TestCase): DeviceRole.objects.bulk_create(device_roles) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -1101,8 +1094,7 @@ class PlatformTestCase(TestCase): Platform.objects.bulk_create(platforms) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -1275,8 +1267,7 @@ class DeviceTestCase(TestCase): Device.objects.filter(pk=devices[1].pk).update(virtual_chassis=virtual_chassis, vc_position=2, vc_priority=2) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -1512,8 +1503,7 @@ class ConsolePortTestCase(TestCase): # Third port is not connected def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -1608,8 +1598,7 @@ class ConsoleServerPortTestCase(TestCase): # Third port is not connected def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -1704,8 +1693,7 @@ class PowerPortTestCase(TestCase): # Third port is not connected def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -1808,8 +1796,7 @@ class PowerOutletTestCase(TestCase): # Third port is not connected def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -1906,9 +1893,8 @@ class InterfaceTestCase(TestCase): # Third pair is not connected def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:3] - params = {'id': [str(id) for id in id_list]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3) + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): params = {'name': ['Interface 1', 'Interface 2']} @@ -2043,8 +2029,7 @@ class FrontPortTestCase(TestCase): # Third port is not connected def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -2136,8 +2121,7 @@ class RearPortTestCase(TestCase): # Third port is not connected def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -2224,8 +2208,7 @@ class DeviceBayTestCase(TestCase): DeviceBay.objects.bulk_create(device_bays) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -2312,8 +2295,7 @@ class InventoryItemTestCase(TestCase): InventoryItem.objects.bulk_create(child_inventory_items) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -2424,8 +2406,7 @@ class VirtualChassisTestCase(TestCase): Device.objects.filter(pk=devices[5].pk).update(virtual_chassis=virtual_chassis[2]) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_domain(self): @@ -2513,8 +2494,7 @@ class CableTestCase(TestCase): Cable(termination_a=interfaces[11], termination_b=interfaces[0], label='Cable 6', type=CableTypeChoices.TYPE_CAT6, status=CableStatusChoices.STATUS_PLANNED, color='e91e63', length=20, length_unit=CableLengthUnitChoices.UNIT_METER).save() def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_label(self): @@ -2609,6 +2589,10 @@ class PowerPanelTestCase(TestCase): ) PowerPanel.objects.bulk_create(power_panels) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_name(self): params = {'name': ['Power Panel 1', 'Power Panel 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -2676,6 +2660,10 @@ class PowerFeedTestCase(TestCase): ) PowerFeed.objects.bulk_create(power_feeds) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_name(self): params = {'name': ['Power Feed 1', 'Power Feed 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) diff --git a/netbox/extras/filters.py b/netbox/extras/filters.py index ad414a691..7ccdb1d86 100644 --- a/netbox/extras/filters.py +++ b/netbox/extras/filters.py @@ -94,14 +94,14 @@ class GraphFilterSet(BaseFilterSet): class Meta: model = Graph - fields = ['type', 'name', 'template_language'] + fields = ['id', 'type', 'name', 'template_language'] class ExportTemplateFilterSet(BaseFilterSet): class Meta: model = ExportTemplate - fields = ['content_type', 'name', 'template_language'] + fields = ['id', 'content_type', 'name', 'template_language'] class TagFilterSet(BaseFilterSet): @@ -112,7 +112,7 @@ class TagFilterSet(BaseFilterSet): class Meta: model = Tag - fields = ['name', 'slug'] + fields = ['id', 'name', 'slug', 'color'] def search(self, queryset, name, value): if not value.strip(): @@ -219,7 +219,7 @@ class ConfigContextFilterSet(BaseFilterSet): class Meta: model = ConfigContext - fields = ['name', 'is_active'] + fields = ['id', 'name', 'is_active'] def search(self, queryset, name, value): if not value.strip(): @@ -255,7 +255,8 @@ class ObjectChangeFilterSet(BaseFilterSet): class Meta: model = ObjectChange fields = [ - 'user', 'user_name', 'request_id', 'action', 'changed_object_type', 'changed_object_id', 'object_repr', + 'id', 'user', 'user_name', 'request_id', 'action', 'changed_object_type', 'changed_object_id', + 'object_repr', ] def search(self, queryset, name, value): diff --git a/netbox/extras/tests/test_filters.py b/netbox/extras/tests/test_filters.py index 25a839c39..72db138e2 100644 --- a/netbox/extras/tests/test_filters.py +++ b/netbox/extras/tests/test_filters.py @@ -5,7 +5,7 @@ from dcim.models import DeviceRole, Platform, Region, Site from extras.choices import * from extras.filters import * from extras.utils import FeatureQuery -from extras.models import ConfigContext, ExportTemplate, Graph +from extras.models import ConfigContext, ExportTemplate, Graph, Tag from tenancy.models import Tenant, TenantGroup from virtualization.models import Cluster, ClusterGroup, ClusterType @@ -27,6 +27,10 @@ class GraphTestCase(TestCase): ) Graph.objects.bulk_create(graphs) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_name(self): params = {'name': ['Graph 1', 'Graph 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -57,6 +61,10 @@ class ExportTemplateTestCase(TestCase): ) ExportTemplate.objects.bulk_create(export_templates) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_name(self): params = {'name': ['Export Template 1', 'Export Template 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -153,6 +161,10 @@ class ConfigContextTestCase(TestCase): c.tenant_groups.set([tenant_groups[i]]) c.tenants.set([tenants[i]]) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_name(self): params = {'name': ['Config Context 1', 'Config Context 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -218,4 +230,35 @@ class ConfigContextTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) +class TagTestCase(TestCase): + queryset = Tag.objects.all() + filterset = TagFilterSet + + @classmethod + def setUpTestData(cls): + + tags = ( + Tag(name='Tag 1', slug='tag-1', color='ff0000'), + Tag(name='Tag 2', slug='tag-2', color='00ff00'), + Tag(name='Tag 3', slug='tag-3', color='0000ff'), + ) + Tag.objects.bulk_create(tags) + + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + + def test_name(self): + params = {'name': ['Tag 1', 'Tag 2']} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + + def test_slug(self): + params = {'slug': ['tag-1', 'tag-2']} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + + def test_color(self): + params = {'color': ['ff0000', '00ff00']} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + + # TODO: ObjectChangeFilter test diff --git a/netbox/ipam/filters.py b/netbox/ipam/filters.py index 1390da945..6641d1c8b 100644 --- a/netbox/ipam/filters.py +++ b/netbox/ipam/filters.py @@ -47,14 +47,14 @@ class VRFFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Create class Meta: model = VRF - fields = ['name', 'rd', 'enforce_unique'] + fields = ['id', 'name', 'rd', 'enforce_unique'] class RIRFilterSet(BaseFilterSet, NameSlugSearchFilterSet): class Meta: model = RIR - fields = ['name', 'slug', 'is_private', 'description'] + fields = ['id', 'name', 'slug', 'is_private', 'description'] class AggregateFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): @@ -84,7 +84,7 @@ class AggregateFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilt class Meta: model = Aggregate - fields = ('date_added',) + fields = ['id', 'date_added'] def search(self, queryset, name, value): if not value.strip(): @@ -206,7 +206,7 @@ class PrefixFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Cre class Meta: model = Prefix - fields = ('is_pool',) + fields = ['id', 'is_pool'] def search(self, queryset, name, value): if not value.strip(): @@ -345,7 +345,7 @@ class IPAddressFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, class Meta: model = IPAddress - fields = ('dns_name',) + fields = ['id', 'dns_name'] def search(self, queryset, name, value): if not value.strip(): @@ -478,7 +478,7 @@ class VLANFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Creat class Meta: model = VLAN - fields = ['vid', 'name'] + fields = ['id', 'vid', 'name'] def search(self, queryset, name, value): if not value.strip(): diff --git a/netbox/ipam/tests/test_filters.py b/netbox/ipam/tests/test_filters.py index b7089f5f8..785f5f2c5 100644 --- a/netbox/ipam/tests/test_filters.py +++ b/netbox/ipam/tests/test_filters.py @@ -40,6 +40,10 @@ class VRFTestCase(TestCase): ) VRF.objects.bulk_create(vrfs) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_name(self): params = {'name': ['VRF 1', 'VRF 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -86,6 +90,10 @@ class RIRTestCase(TestCase): ) RIR.objects.bulk_create(rirs) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_name(self): params = {'name': ['RIR 1', 'RIR 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -129,6 +137,10 @@ class AggregateTestCase(TestCase): ) Aggregate.objects.bulk_create(aggregates) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_family(self): params = {'family': '4'} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3) @@ -165,8 +177,7 @@ class RoleTestCase(TestCase): Role.objects.bulk_create(roles) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -251,6 +262,10 @@ class PrefixTestCase(TestCase): ) Prefix.objects.bulk_create(prefixes) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_family(self): params = {'family': '6'} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5) @@ -409,6 +424,10 @@ class IPAddressTestCase(TestCase): ) IPAddress.objects.bulk_create(ipaddresses) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_family(self): params = {'family': '6'} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5) @@ -531,8 +550,7 @@ class VLANGroupTestCase(TestCase): VLANGroup.objects.bulk_create(vlan_groups) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -624,6 +642,10 @@ class VLANTestCase(TestCase): ) VLAN.objects.bulk_create(vlans) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_name(self): params = {'name': ['VLAN 101', 'VLAN 102']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -719,8 +741,7 @@ class ServiceTestCase(TestCase): Service.objects.bulk_create(services) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:3] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:3]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3) def test_name(self): diff --git a/netbox/secrets/filters.py b/netbox/secrets/filters.py index 34869b80f..78f25952a 100644 --- a/netbox/secrets/filters.py +++ b/netbox/secrets/filters.py @@ -49,7 +49,7 @@ class SecretFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterS class Meta: model = Secret - fields = ['name'] + fields = ['id', 'name'] def search(self, queryset, name, value): if not value.strip(): diff --git a/netbox/secrets/tests/test_filters.py b/netbox/secrets/tests/test_filters.py index d240de6f4..b7ac73f1d 100644 --- a/netbox/secrets/tests/test_filters.py +++ b/netbox/secrets/tests/test_filters.py @@ -20,8 +20,7 @@ class SecretRoleTestCase(TestCase): SecretRole.objects.bulk_create(roles) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -68,6 +67,10 @@ class SecretTestCase(TestCase): for s in secrets: s.save() + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_name(self): params = {'name': ['Secret 1', 'Secret 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) diff --git a/netbox/tenancy/filters.py b/netbox/tenancy/filters.py index 40e35270e..af5ee0b2c 100644 --- a/netbox/tenancy/filters.py +++ b/netbox/tenancy/filters.py @@ -52,7 +52,7 @@ class TenantFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterS class Meta: model = Tenant - fields = ['name', 'slug'] + fields = ['id', 'name', 'slug'] def search(self, queryset, name, value): if not value.strip(): diff --git a/netbox/tenancy/tests/test_filters.py b/netbox/tenancy/tests/test_filters.py index 51deedde8..c78b25083 100644 --- a/netbox/tenancy/tests/test_filters.py +++ b/netbox/tenancy/tests/test_filters.py @@ -28,8 +28,7 @@ class TenantGroupTestCase(TestCase): tenantgroup.save() def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -74,6 +73,10 @@ class TenantTestCase(TestCase): ) Tenant.objects.bulk_create(tenants) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_name(self): params = {'name': ['Tenant 1', 'Tenant 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) diff --git a/netbox/virtualization/filters.py b/netbox/virtualization/filters.py index cf71b05e6..a54b6ab28 100644 --- a/netbox/virtualization/filters.py +++ b/netbox/virtualization/filters.py @@ -86,7 +86,7 @@ class ClusterFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Cr class Meta: model = Cluster - fields = ['name'] + fields = ['id', 'name'] def search(self, queryset, name, value): if not value.strip(): diff --git a/netbox/virtualization/tests/test_filters.py b/netbox/virtualization/tests/test_filters.py index e69e358d4..51c7c6e8d 100644 --- a/netbox/virtualization/tests/test_filters.py +++ b/netbox/virtualization/tests/test_filters.py @@ -22,8 +22,7 @@ class ClusterTypeTestCase(TestCase): ClusterType.objects.bulk_create(cluster_types) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -54,8 +53,7 @@ class ClusterGroupTestCase(TestCase): ClusterGroup.objects.bulk_create(cluster_groups) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self): @@ -130,6 +128,10 @@ class ClusterTestCase(TestCase): ) Cluster.objects.bulk_create(clusters) + def test_id(self): + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_name(self): params = {'name': ['Cluster 1', 'Cluster 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -265,8 +267,7 @@ class VirtualMachineTestCase(TestCase): Interface.objects.bulk_create(interfaces) def test_id(self): - id_list = self.queryset.values_list('id', flat=True)[:2] - params = {'id': [str(id) for id in id_list]} + params = {'id': self.queryset.values_list('pk', flat=True)[:2]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_name(self):