Arthur 3 лет назад
Родитель
Сommit
d24f10ce6e

+ 16 - 2
netbox/circuits/tests/test_filtersets.py

@@ -344,6 +344,7 @@ class CircuitTerminationTestCase(TestCase, ChangeLoggedFilterSetTests):
             Circuit(provider=providers[0], type=circuit_types[0], cid='Circuit 4'),
             Circuit(provider=providers[0], type=circuit_types[0], cid='Circuit 5'),
             Circuit(provider=providers[0], type=circuit_types[0], cid='Circuit 6'),
+            Circuit(provider=providers[0], type=circuit_types[0], cid='Circuit 7'),
         )
         Circuit.objects.bulk_create(circuits)
 
@@ -357,6 +358,7 @@ class CircuitTerminationTestCase(TestCase, ChangeLoggedFilterSetTests):
             CircuitTermination(circuit=circuits[3], provider_network=provider_networks[0], term_side='A'),
             CircuitTermination(circuit=circuits[4], provider_network=provider_networks[1], term_side='A'),
             CircuitTermination(circuit=circuits[5], provider_network=provider_networks[2], term_side='A'),
+            CircuitTermination(circuit=circuits[6], provider_network=provider_networks[0], term_side='A', mark_connected=True),
         ))
         CircuitTermination.objects.bulk_create(circuit_terminations)
 
@@ -364,7 +366,7 @@ class CircuitTerminationTestCase(TestCase, ChangeLoggedFilterSetTests):
 
     def test_term_side(self):
         params = {'term_side': 'A'}
-        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 6)
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 7)
 
     def test_port_speed(self):
         params = {'port_speed': ['1000', '2000']}
@@ -397,12 +399,24 @@ class CircuitTerminationTestCase(TestCase, ChangeLoggedFilterSetTests):
     def test_provider_network(self):
         provider_networks = ProviderNetwork.objects.all()[:2]
         params = {'provider_network_id': [provider_networks[0].pk, provider_networks[1].pk]}
-        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
 
     def test_cabled(self):
         params = {'cabled': True}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
+    def test_connected(self):
+        params = {'connected': True}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 10)
+        params = {'connected': False}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 10)
+
+    def test_is_occupied(self):
+        params = {'is_occupied': True}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
+        params = {'is_occupied': False}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 7)
+
 
 class ProviderNetworkTestCase(TestCase, ChangeLoggedFilterSetTests):
     queryset = ProviderNetwork.objects.all()

+ 6 - 6
netbox/dcim/filtersets.py

@@ -1148,6 +1148,12 @@ class CabledObjectFilterSet(django_filters.FilterSet):
         method='filter_is_occupied'
     )
 
+    def filter_is_occupied(self, queryset, name, value):
+        if value:
+            return queryset.filter(Q(cable__isnull=False) | Q(mark_connected=True))
+        else:
+            return queryset.filter(cable__isnull=True, mark_connected=False)
+
 
 class PathEndpointFilterSet(django_filters.FilterSet):
     connected = django_filters.BooleanFilter(
@@ -1362,12 +1368,6 @@ class InterfaceFilterSet(
             'wireless': queryset.filter(type__in=WIRELESS_IFACE_TYPES),
         }.get(value, queryset.none())
 
-    def filter_is_occupied(self, queryset, name, value):
-        if value:
-            return queryset.filter(Q(cable__isnull=False) | Q(mark_connected=True))
-        else:
-            return queryset.filter(cable__isnull=True, mark_connected=False)
-
 
 class FrontPortFilterSet(
     ModularDeviceComponentFilterSet,

+ 3 - 3
netbox/dcim/tests/test_filtersets.py

@@ -2885,10 +2885,10 @@ class InterfaceTestCase(TestCase, ChangeLoggedFilterSetTests):
         params = {'connected': False}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
-    def is_occupied(self):
-        params = {'is_occupied': 'true'}
+    def test_is_occupied(self):
+        params = {'is_occupied': True}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
-        params = {'is_occupied': 'false'}
+        params = {'is_occupied': False}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_kind(self):