|
|
@@ -1626,10 +1626,14 @@ class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
ipaddresses = (
|
|
|
IPAddress(address='192.0.2.1/24', assigned_object=interfaces[0]),
|
|
|
IPAddress(address='192.0.2.2/24', assigned_object=interfaces[1]),
|
|
|
+ IPAddress(address='192.0.2.3/24', assigned_object=None),
|
|
|
+ IPAddress(address='2001:db8::1/64', assigned_object=interfaces[0]),
|
|
|
+ IPAddress(address='2001:db8::2/64', assigned_object=interfaces[1]),
|
|
|
+ IPAddress(address='2001:db8::3/64', assigned_object=None),
|
|
|
)
|
|
|
IPAddress.objects.bulk_create(ipaddresses)
|
|
|
- Device.objects.filter(pk=devices[0].pk).update(primary_ip4=ipaddresses[0])
|
|
|
- Device.objects.filter(pk=devices[1].pk).update(primary_ip4=ipaddresses[1])
|
|
|
+ Device.objects.filter(pk=devices[0].pk).update(primary_ip4=ipaddresses[0], primary_ip6=ipaddresses[3])
|
|
|
+ Device.objects.filter(pk=devices[1].pk).update(primary_ip4=ipaddresses[1], primary_ip6=ipaddresses[4])
|
|
|
|
|
|
# VirtualChassis assignment for filtering
|
|
|
virtual_chassis = VirtualChassis.objects.create(master=devices[0])
|
|
|
@@ -1761,6 +1765,20 @@ class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
|
|
|
params = {'has_primary_ip': 'false'}
|
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
|
|
|
|
|
|
+ def test_primary_ip4(self):
|
|
|
+ addresses = IPAddress.objects.filter(address__family=4)
|
|
|
+ params = {'primary_ip4_id': [addresses[0].pk, addresses[1].pk]}
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
+ params = {'primary_ip4_id': [addresses[2].pk]}
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 0)
|
|
|
+
|
|
|
+ def test_primary_ip6(self):
|
|
|
+ addresses = IPAddress.objects.filter(address__family=6)
|
|
|
+ params = {'primary_ip6_id': [addresses[0].pk, addresses[1].pk]}
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
|
+ params = {'primary_ip6_id': [addresses[2].pk]}
|
|
|
+ self.assertEqual(self.filterset(params, self.queryset).qs.count(), 0)
|
|
|
+
|
|
|
def test_virtual_chassis_id(self):
|
|
|
params = {'virtual_chassis_id': [VirtualChassis.objects.first().pk]}
|
|
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|