|
1 | 1 | """Unit tests for nautobot_firewall_models.""" |
| 2 | + |
2 | 3 | # pylint: disable=invalid-name |
3 | 4 |
|
4 | 5 | from django.test import TestCase |
| 6 | +from nautobot.apps.testing import FilterTestCases |
5 | 7 | from nautobot.dcim.models import Device |
| 8 | +from nautobot.extras.models import Status |
| 9 | +from nautobot.ipam.models import IPAddress, Namespace, Prefix |
6 | 10 |
|
7 | 11 | from nautobot_firewall_models import filters, models |
8 | 12 |
|
@@ -38,3 +42,89 @@ def test_device(self): |
38 | 42 | self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) |
39 | 43 | params = {"device": [self.dev01.id]} |
40 | 44 | self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) |
| 45 | + |
| 46 | + |
| 47 | +class AddressObjectTestCase(FilterTestCases.FilterTestCase): |
| 48 | + """Test filtering operations for AddressObject Model.""" |
| 49 | + |
| 50 | + queryset = models.AddressObject.objects.all() |
| 51 | + filterset = filters.AddressObjectFilterSet |
| 52 | + generic_filter_tests = ( |
| 53 | + ("address_object_groups", "address_object_groups__id"), |
| 54 | + ("address_object_groups", "address_object_groups__name"), |
| 55 | + ) |
| 56 | + |
| 57 | + @classmethod |
| 58 | + def setUpTestData(cls): |
| 59 | + """Set up test data.""" |
| 60 | + status_active = Status.objects.get(name="Active") |
| 61 | + global_namespace = Namespace.objects.get(name="Global") |
| 62 | + Prefix.objects.create(prefix="0.0.0.0/0", namespace=global_namespace, status=status_active) |
| 63 | + ip_addresses = ( |
| 64 | + IPAddress.objects.create(address="10.0.0.1", status=status_active, namespace=global_namespace), |
| 65 | + IPAddress.objects.create(address="10.0.0.2", status=status_active, namespace=global_namespace), |
| 66 | + IPAddress.objects.create(address="10.0.0.3", status=status_active, namespace=global_namespace), |
| 67 | + ) |
| 68 | + address_objects = ( |
| 69 | + models.AddressObject.objects.create( |
| 70 | + name="test-address-object", |
| 71 | + status=status_active, |
| 72 | + ip_address=ip_addresses[0], |
| 73 | + ), |
| 74 | + models.AddressObject.objects.create( |
| 75 | + name="test-address-object-2", |
| 76 | + status=status_active, |
| 77 | + ip_address=ip_addresses[1], |
| 78 | + ), |
| 79 | + models.AddressObject.objects.create( |
| 80 | + name="test-address-object-3", |
| 81 | + status=status_active, |
| 82 | + ip_address=ip_addresses[2], |
| 83 | + ), |
| 84 | + ) |
| 85 | + address_object_groups = ( |
| 86 | + models.AddressObjectGroup.objects.create(name="test-address-object-group", status=status_active), |
| 87 | + models.AddressObjectGroup.objects.create(name="test-address-object-group-2", status=status_active), |
| 88 | + models.AddressObjectGroup.objects.create(name="test-address-object-group-3", status=status_active), |
| 89 | + ) |
| 90 | + address_object_groups[0].address_objects.set([address_objects[0]]) |
| 91 | + address_object_groups[1].address_objects.set([address_objects[1]]) |
| 92 | + address_object_groups[2].address_objects.set([address_objects[2]]) |
| 93 | + |
| 94 | + |
| 95 | +class ApplicationObjectTestCase(FilterTestCases.FilterTestCase): |
| 96 | + """Test filtering operations for ApplicationObject Model.""" |
| 97 | + |
| 98 | + queryset = models.ApplicationObject.objects.all() |
| 99 | + filterset = filters.ApplicationObjectFilterSet |
| 100 | + generic_filter_tests = ( |
| 101 | + ("application_object_groups", "application_object_groups__id"), |
| 102 | + ("application_object_groups", "application_object_groups__name"), |
| 103 | + ) |
| 104 | + |
| 105 | + @classmethod |
| 106 | + def setUpTestData(cls): |
| 107 | + """Set up test data.""" |
| 108 | + status_active = Status.objects.get(name="Active") |
| 109 | + application_objects = ( |
| 110 | + models.ApplicationObject.objects.create( |
| 111 | + name="test-application-object", |
| 112 | + status=status_active, |
| 113 | + ), |
| 114 | + models.ApplicationObject.objects.create( |
| 115 | + name="test-application-object-2", |
| 116 | + status=status_active, |
| 117 | + ), |
| 118 | + models.ApplicationObject.objects.create( |
| 119 | + name="test-application-object-3", |
| 120 | + status=status_active, |
| 121 | + ), |
| 122 | + ) |
| 123 | + application_object_groups = ( |
| 124 | + models.ApplicationObjectGroup.objects.create(name="test-application-object-group", status=status_active), |
| 125 | + models.ApplicationObjectGroup.objects.create(name="test-application-object-group-2", status=status_active), |
| 126 | + models.ApplicationObjectGroup.objects.create(name="test-application-object-group-3", status=status_active), |
| 127 | + ) |
| 128 | + application_object_groups[0].application_objects.set([application_objects[0]]) |
| 129 | + application_object_groups[1].application_objects.set([application_objects[1]]) |
| 130 | + application_object_groups[2].application_objects.set([application_objects[2]]) |
0 commit comments