@@ -1626,10 +1626,14 @@ def setUpTestData(cls):
16261626 ipaddresses = (
16271627 IPAddress (address = '192.0.2.1/24' , assigned_object = interfaces [0 ]),
16281628 IPAddress (address = '192.0.2.2/24' , assigned_object = interfaces [1 ]),
1629+ IPAddress (address = '192.0.2.3/24' , assigned_object = None ),
1630+ IPAddress (address = '2001:db8::1/64' , assigned_object = interfaces [0 ]),
1631+ IPAddress (address = '2001:db8::2/64' , assigned_object = interfaces [1 ]),
1632+ IPAddress (address = '2001:db8::3/64' , assigned_object = None ),
16291633 )
16301634 IPAddress .objects .bulk_create (ipaddresses )
1631- Device .objects .filter (pk = devices [0 ].pk ).update (primary_ip4 = ipaddresses [0 ])
1632- Device .objects .filter (pk = devices [1 ].pk ).update (primary_ip4 = ipaddresses [1 ])
1635+ Device .objects .filter (pk = devices [0 ].pk ).update (primary_ip4 = ipaddresses [0 ], primary_ip6 = ipaddresses [ 3 ] )
1636+ Device .objects .filter (pk = devices [1 ].pk ).update (primary_ip4 = ipaddresses [1 ], primary_ip6 = ipaddresses [ 4 ] )
16331637
16341638 # VirtualChassis assignment for filtering
16351639 virtual_chassis = VirtualChassis .objects .create (master = devices [0 ])
@@ -1761,6 +1765,20 @@ def test_has_primary_ip(self):
17611765 params = {'has_primary_ip' : 'false' }
17621766 self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 1 )
17631767
1768+ def test_primary_ip4 (self ):
1769+ addresses = IPAddress .objects .filter (address__family = 4 )
1770+ params = {'primary_ip4_id' : [addresses [0 ].pk , addresses [1 ].pk ]}
1771+ self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 2 )
1772+ params = {'primary_ip4_id' : [addresses [2 ].pk ]}
1773+ self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 0 )
1774+
1775+ def test_primary_ip6 (self ):
1776+ addresses = IPAddress .objects .filter (address__family = 6 )
1777+ params = {'primary_ip6_id' : [addresses [0 ].pk , addresses [1 ].pk ]}
1778+ self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 2 )
1779+ params = {'primary_ip6_id' : [addresses [2 ].pk ]}
1780+ self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 0 )
1781+
17641782 def test_virtual_chassis_id (self ):
17651783 params = {'virtual_chassis_id' : [VirtualChassis .objects .first ().pk ]}
17661784 self .assertEqual (self .filterset (params , self .queryset ).qs .count (), 2 )
0 commit comments