1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Ensure all model FilterSets support the 'id' field

This commit is contained in:
Jeremy Stretch
2020-05-06 12:33:52 -04:00
parent 4d5d298ee1
commit 1ccb3162ff
14 changed files with 162 additions and 94 deletions

View File

@ -51,7 +51,7 @@ class ProviderFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilte
class Meta: class Meta:
model = Provider model = Provider
fields = ['name', 'slug', 'asn', 'account'] fields = ['id', 'name', 'slug', 'asn', 'account']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():
@ -129,7 +129,7 @@ class CircuitFilterSet(BaseFilterSet, CustomFieldFilterSet, TenancyFilterSet, Cr
class Meta: class Meta:
model = Circuit model = Circuit
fields = ['cid', 'install_date', 'commit_rate'] fields = ['id', 'cid', 'install_date', 'commit_rate']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():

View File

@ -54,6 +54,10 @@ class ProviderTestCase(TestCase):
CircuitTermination(circuit=circuits[1], site=sites[0], term_side='A', port_speed=1000), 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): def test_name(self):
params = {'name': ['Provider 1', 'Provider 2']} params = {'name': ['Provider 1', 'Provider 2']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
@ -178,6 +182,10 @@ class CircuitTestCase(TestCase):
)) ))
CircuitTermination.objects.bulk_create(circuit_terminations) 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): def test_cid(self):
params = {'cid': ['Test Circuit 1', 'Test Circuit 2']} params = {'cid': ['Test Circuit 1', 'Test Circuit 2']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)

View File

@ -301,7 +301,7 @@ class RackReservationFilterSet(BaseFilterSet, TenancyFilterSet):
class Meta: class Meta:
model = RackReservation model = RackReservation
fields = ['created'] fields = ['id', 'created']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():
@ -369,7 +369,7 @@ class DeviceTypeFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFil
class Meta: class Meta:
model = DeviceType model = DeviceType
fields = [ 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): def search(self, queryset, name, value):
@ -1268,7 +1268,7 @@ class PowerPanelFilterSet(BaseFilterSet):
class Meta: class Meta:
model = PowerPanel model = PowerPanel
fields = ['name'] fields = ['id', 'name']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():
@ -1321,7 +1321,7 @@ class PowerFeedFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilt
class Meta: class Meta:
model = PowerFeed 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): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():

View File

@ -42,8 +42,7 @@ class RegionTestCase(TestCase):
region.save() region.save()
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -104,8 +103,7 @@ class SiteTestCase(TestCase):
Site.objects.bulk_create(sites) Site.objects.bulk_create(sites)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -209,8 +207,7 @@ class RackGroupTestCase(TestCase):
rackgroup.save() rackgroup.save()
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -262,8 +259,7 @@ class RackRoleTestCase(TestCase):
RackRole.objects.bulk_create(rack_roles) RackRole.objects.bulk_create(rack_roles)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -339,8 +335,7 @@ class RackTestCase(TestCase):
Rack.objects.bulk_create(racks) Rack.objects.bulk_create(racks)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -499,6 +494,10 @@ class RackReservationTestCase(TestCase):
) )
RackReservation.objects.bulk_create(reservations) 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): def test_site(self):
sites = Site.objects.all()[:2] sites = Site.objects.all()[:2]
params = {'site_id': [sites[0].pk, sites[1].pk]} params = {'site_id': [sites[0].pk, sites[1].pk]}
@ -551,8 +550,7 @@ class ManufacturerTestCase(TestCase):
Manufacturer.objects.bulk_create(manufacturers) Manufacturer.objects.bulk_create(manufacturers)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -624,6 +622,10 @@ class DeviceTypeTestCase(TestCase):
DeviceBayTemplate(device_type=device_types[1], name='Device Bay 2'), 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): def test_model(self):
params = {'model': ['Model 1', 'Model 2']} params = {'model': ['Model 1', 'Model 2']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
@ -723,8 +725,7 @@ class ConsolePortTemplateTestCase(TestCase):
)) ))
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -760,8 +761,7 @@ class ConsoleServerPortTemplateTestCase(TestCase):
)) ))
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -797,8 +797,7 @@ class PowerPortTemplateTestCase(TestCase):
)) ))
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -842,8 +841,7 @@ class PowerOutletTemplateTestCase(TestCase):
)) ))
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -884,8 +882,7 @@ class InterfaceTemplateTestCase(TestCase):
)) ))
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -939,8 +936,7 @@ class FrontPortTemplateTestCase(TestCase):
)) ))
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -981,8 +977,7 @@ class RearPortTemplateTestCase(TestCase):
)) ))
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -1027,8 +1022,7 @@ class DeviceBayTemplateTestCase(TestCase):
)) ))
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -1056,8 +1050,7 @@ class DeviceRoleTestCase(TestCase):
DeviceRole.objects.bulk_create(device_roles) DeviceRole.objects.bulk_create(device_roles)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -1101,8 +1094,7 @@ class PlatformTestCase(TestCase):
Platform.objects.bulk_create(platforms) Platform.objects.bulk_create(platforms)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): 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) Device.objects.filter(pk=devices[1].pk).update(virtual_chassis=virtual_chassis, vc_position=2, vc_priority=2)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -1512,8 +1503,7 @@ class ConsolePortTestCase(TestCase):
# Third port is not connected # Third port is not connected
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -1608,8 +1598,7 @@ class ConsoleServerPortTestCase(TestCase):
# Third port is not connected # Third port is not connected
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -1704,8 +1693,7 @@ class PowerPortTestCase(TestCase):
# Third port is not connected # Third port is not connected
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -1808,8 +1796,7 @@ class PowerOutletTestCase(TestCase):
# Third port is not connected # Third port is not connected
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -1906,9 +1893,8 @@ class InterfaceTestCase(TestCase):
# Third pair is not connected # Third pair is not connected
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:3] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
def test_name(self): def test_name(self):
params = {'name': ['Interface 1', 'Interface 2']} params = {'name': ['Interface 1', 'Interface 2']}
@ -2043,8 +2029,7 @@ class FrontPortTestCase(TestCase):
# Third port is not connected # Third port is not connected
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -2136,8 +2121,7 @@ class RearPortTestCase(TestCase):
# Third port is not connected # Third port is not connected
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -2224,8 +2208,7 @@ class DeviceBayTestCase(TestCase):
DeviceBay.objects.bulk_create(device_bays) DeviceBay.objects.bulk_create(device_bays)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -2312,8 +2295,7 @@ class InventoryItemTestCase(TestCase):
InventoryItem.objects.bulk_create(child_inventory_items) InventoryItem.objects.bulk_create(child_inventory_items)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -2424,8 +2406,7 @@ class VirtualChassisTestCase(TestCase):
Device.objects.filter(pk=devices[5].pk).update(virtual_chassis=virtual_chassis[2]) Device.objects.filter(pk=devices[5].pk).update(virtual_chassis=virtual_chassis[2])
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_domain(self): 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() 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): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_label(self): def test_label(self):
@ -2609,6 +2589,10 @@ class PowerPanelTestCase(TestCase):
) )
PowerPanel.objects.bulk_create(power_panels) 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): def test_name(self):
params = {'name': ['Power Panel 1', 'Power Panel 2']} params = {'name': ['Power Panel 1', 'Power Panel 2']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
@ -2676,6 +2660,10 @@ class PowerFeedTestCase(TestCase):
) )
PowerFeed.objects.bulk_create(power_feeds) 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): def test_name(self):
params = {'name': ['Power Feed 1', 'Power Feed 2']} params = {'name': ['Power Feed 1', 'Power Feed 2']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)

View File

@ -94,14 +94,14 @@ class GraphFilterSet(BaseFilterSet):
class Meta: class Meta:
model = Graph model = Graph
fields = ['type', 'name', 'template_language'] fields = ['id', 'type', 'name', 'template_language']
class ExportTemplateFilterSet(BaseFilterSet): class ExportTemplateFilterSet(BaseFilterSet):
class Meta: class Meta:
model = ExportTemplate model = ExportTemplate
fields = ['content_type', 'name', 'template_language'] fields = ['id', 'content_type', 'name', 'template_language']
class TagFilterSet(BaseFilterSet): class TagFilterSet(BaseFilterSet):
@ -112,7 +112,7 @@ class TagFilterSet(BaseFilterSet):
class Meta: class Meta:
model = Tag model = Tag
fields = ['name', 'slug'] fields = ['id', 'name', 'slug', 'color']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():
@ -219,7 +219,7 @@ class ConfigContextFilterSet(BaseFilterSet):
class Meta: class Meta:
model = ConfigContext model = ConfigContext
fields = ['name', 'is_active'] fields = ['id', 'name', 'is_active']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():
@ -255,7 +255,8 @@ class ObjectChangeFilterSet(BaseFilterSet):
class Meta: class Meta:
model = ObjectChange model = ObjectChange
fields = [ 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): def search(self, queryset, name, value):

View File

@ -5,7 +5,7 @@ from dcim.models import DeviceRole, Platform, Region, Site
from extras.choices import * from extras.choices import *
from extras.filters import * from extras.filters import *
from extras.utils import FeatureQuery 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 tenancy.models import Tenant, TenantGroup
from virtualization.models import Cluster, ClusterGroup, ClusterType from virtualization.models import Cluster, ClusterGroup, ClusterType
@ -27,6 +27,10 @@ class GraphTestCase(TestCase):
) )
Graph.objects.bulk_create(graphs) 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): def test_name(self):
params = {'name': ['Graph 1', 'Graph 2']} params = {'name': ['Graph 1', 'Graph 2']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
@ -57,6 +61,10 @@ class ExportTemplateTestCase(TestCase):
) )
ExportTemplate.objects.bulk_create(export_templates) 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): def test_name(self):
params = {'name': ['Export Template 1', 'Export Template 2']} params = {'name': ['Export Template 1', 'Export Template 2']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 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.tenant_groups.set([tenant_groups[i]])
c.tenants.set([tenants[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): def test_name(self):
params = {'name': ['Config Context 1', 'Config Context 2']} params = {'name': ['Config Context 1', 'Config Context 2']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 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) 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 # TODO: ObjectChangeFilter test

View File

@ -47,14 +47,14 @@ class VRFFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Create
class Meta: class Meta:
model = VRF model = VRF
fields = ['name', 'rd', 'enforce_unique'] fields = ['id', 'name', 'rd', 'enforce_unique']
class RIRFilterSet(BaseFilterSet, NameSlugSearchFilterSet): class RIRFilterSet(BaseFilterSet, NameSlugSearchFilterSet):
class Meta: class Meta:
model = RIR model = RIR
fields = ['name', 'slug', 'is_private', 'description'] fields = ['id', 'name', 'slug', 'is_private', 'description']
class AggregateFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): class AggregateFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet):
@ -84,7 +84,7 @@ class AggregateFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilt
class Meta: class Meta:
model = Aggregate model = Aggregate
fields = ('date_added',) fields = ['id', 'date_added']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():
@ -206,7 +206,7 @@ class PrefixFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Cre
class Meta: class Meta:
model = Prefix model = Prefix
fields = ('is_pool',) fields = ['id', 'is_pool']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():
@ -345,7 +345,7 @@ class IPAddressFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet,
class Meta: class Meta:
model = IPAddress model = IPAddress
fields = ('dns_name',) fields = ['id', 'dns_name']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():
@ -478,7 +478,7 @@ class VLANFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Creat
class Meta: class Meta:
model = VLAN model = VLAN
fields = ['vid', 'name'] fields = ['id', 'vid', 'name']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():

View File

@ -40,6 +40,10 @@ class VRFTestCase(TestCase):
) )
VRF.objects.bulk_create(vrfs) 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): def test_name(self):
params = {'name': ['VRF 1', 'VRF 2']} params = {'name': ['VRF 1', 'VRF 2']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
@ -86,6 +90,10 @@ class RIRTestCase(TestCase):
) )
RIR.objects.bulk_create(rirs) 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): def test_name(self):
params = {'name': ['RIR 1', 'RIR 2']} params = {'name': ['RIR 1', 'RIR 2']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
@ -129,6 +137,10 @@ class AggregateTestCase(TestCase):
) )
Aggregate.objects.bulk_create(aggregates) 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): def test_family(self):
params = {'family': '4'} params = {'family': '4'}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
@ -165,8 +177,7 @@ class RoleTestCase(TestCase):
Role.objects.bulk_create(roles) Role.objects.bulk_create(roles)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -251,6 +262,10 @@ class PrefixTestCase(TestCase):
) )
Prefix.objects.bulk_create(prefixes) 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): def test_family(self):
params = {'family': '6'} params = {'family': '6'}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5)
@ -409,6 +424,10 @@ class IPAddressTestCase(TestCase):
) )
IPAddress.objects.bulk_create(ipaddresses) 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): def test_family(self):
params = {'family': '6'} params = {'family': '6'}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5)
@ -531,8 +550,7 @@ class VLANGroupTestCase(TestCase):
VLANGroup.objects.bulk_create(vlan_groups) VLANGroup.objects.bulk_create(vlan_groups)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -624,6 +642,10 @@ class VLANTestCase(TestCase):
) )
VLAN.objects.bulk_create(vlans) 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): def test_name(self):
params = {'name': ['VLAN 101', 'VLAN 102']} params = {'name': ['VLAN 101', 'VLAN 102']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
@ -719,8 +741,7 @@ class ServiceTestCase(TestCase):
Service.objects.bulk_create(services) Service.objects.bulk_create(services)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:3] params = {'id': self.queryset.values_list('pk', flat=True)[:3]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
def test_name(self): def test_name(self):

View File

@ -49,7 +49,7 @@ class SecretFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterS
class Meta: class Meta:
model = Secret model = Secret
fields = ['name'] fields = ['id', 'name']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():

View File

@ -20,8 +20,7 @@ class SecretRoleTestCase(TestCase):
SecretRole.objects.bulk_create(roles) SecretRole.objects.bulk_create(roles)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -68,6 +67,10 @@ class SecretTestCase(TestCase):
for s in secrets: for s in secrets:
s.save() 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): def test_name(self):
params = {'name': ['Secret 1', 'Secret 2']} params = {'name': ['Secret 1', 'Secret 2']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)

View File

@ -52,7 +52,7 @@ class TenantFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterS
class Meta: class Meta:
model = Tenant model = Tenant
fields = ['name', 'slug'] fields = ['id', 'name', 'slug']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():

View File

@ -28,8 +28,7 @@ class TenantGroupTestCase(TestCase):
tenantgroup.save() tenantgroup.save()
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -74,6 +73,10 @@ class TenantTestCase(TestCase):
) )
Tenant.objects.bulk_create(tenants) 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): def test_name(self):
params = {'name': ['Tenant 1', 'Tenant 2']} params = {'name': ['Tenant 1', 'Tenant 2']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)

View File

@ -86,7 +86,7 @@ class ClusterFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Cr
class Meta: class Meta:
model = Cluster model = Cluster
fields = ['name'] fields = ['id', 'name']
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():

View File

@ -22,8 +22,7 @@ class ClusterTypeTestCase(TestCase):
ClusterType.objects.bulk_create(cluster_types) ClusterType.objects.bulk_create(cluster_types)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -54,8 +53,7 @@ class ClusterGroupTestCase(TestCase):
ClusterGroup.objects.bulk_create(cluster_groups) ClusterGroup.objects.bulk_create(cluster_groups)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):
@ -130,6 +128,10 @@ class ClusterTestCase(TestCase):
) )
Cluster.objects.bulk_create(clusters) 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): def test_name(self):
params = {'name': ['Cluster 1', 'Cluster 2']} params = {'name': ['Cluster 1', 'Cluster 2']}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
@ -265,8 +267,7 @@ class VirtualMachineTestCase(TestCase):
Interface.objects.bulk_create(interfaces) Interface.objects.bulk_create(interfaces)
def test_id(self): def test_id(self):
id_list = self.queryset.values_list('id', flat=True)[:2] params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
params = {'id': [str(id) for id in id_list]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_name(self): def test_name(self):