From d24f10ce6e2878a8963412ec271f0dd449862bf7 Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 12 Sep 2022 10:52:40 -0700 Subject: [PATCH] #8580 add tests --- netbox/circuits/tests/test_filtersets.py | 18 ++++++++++++++++-- netbox/dcim/filtersets.py | 12 ++++++------ netbox/dcim/tests/test_filtersets.py | 6 +++--- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/netbox/circuits/tests/test_filtersets.py b/netbox/circuits/tests/test_filtersets.py index abcfa8a00..ada3d9bf1 100644 --- a/netbox/circuits/tests/test_filtersets.py +++ b/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() diff --git a/netbox/dcim/filtersets.py b/netbox/dcim/filtersets.py index 4ccf0dda5..3af5883ba 100644 --- a/netbox/dcim/filtersets.py +++ b/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, diff --git a/netbox/dcim/tests/test_filtersets.py b/netbox/dcim/tests/test_filtersets.py index 15e109030..6cbd91122 100644 --- a/netbox/dcim/tests/test_filtersets.py +++ b/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):