Bläddra i källkod

For #12826 add tests to RackTest filtersets for manufacturer and DeviceType

Arthur Hanson 1 år sedan
förälder
incheckning
1a6406632a
1 ändrade filer med 89 tillägg och 6 borttagningar
  1. 89 6
      netbox/dcim/tests/test_filtersets.py

+ 89 - 6
netbox/dcim/tests/test_filtersets.py

@@ -653,6 +653,53 @@ class RackTestCase(TestCase, ChangeLoggedFilterSetTests):
         for location in locations:
             location.save()
 
+        manufacturers = (
+            Manufacturer(name='Manufacturer 1', slug='manufacturer-1'),
+            Manufacturer(name='Manufacturer 2', slug='manufacturer-2'),
+            Manufacturer(name='Manufacturer 3', slug='manufacturer-3'),
+        )
+        Manufacturer.objects.bulk_create(manufacturers)
+
+        rack_types = (
+            RackType(
+                manufacturer=manufacturers[0],
+                name='RackType 1',
+                slug='rack-type-1',
+                form_factor=RackFormFactorChoices.TYPE_2POST,
+                width=RackWidthChoices.WIDTH_19IN,
+                u_height=42,
+                starting_unit=1,
+                desc_units=False,
+                outer_width=100,
+                outer_depth=100,
+                outer_unit=RackDimensionUnitChoices.UNIT_MILLIMETER,
+                mounting_depth=100,
+                weight=10,
+                max_weight=1000,
+                weight_unit=WeightUnitChoices.UNIT_POUND,
+                description='foobar1'
+            ),
+            RackType(
+                manufacturer=manufacturers[1],
+                name='RackType 2',
+                slug='rack-type-2',
+                form_factor=RackFormFactorChoices.TYPE_4POST,
+                width=RackWidthChoices.WIDTH_21IN,
+                u_height=43,
+                starting_unit=2,
+                desc_units=False,
+                outer_width=200,
+                outer_depth=200,
+                outer_unit=RackDimensionUnitChoices.UNIT_MILLIMETER,
+                mounting_depth=200,
+                weight=20,
+                max_weight=2000,
+                weight_unit=WeightUnitChoices.UNIT_POUND,
+                description='foobar2'
+            ),
+        )
+        RackType.objects.bulk_create(rack_types)
+
         rack_roles = (
             RackRole(name='Rack Role 1', slug='rack-role-1'),
             RackRole(name='Rack Role 2', slug='rack-role-2'),
@@ -742,6 +789,28 @@ class RackTestCase(TestCase, ChangeLoggedFilterSetTests):
                 weight_unit=WeightUnitChoices.UNIT_KILOGRAM,
                 description='foobar3'
             ),
+            Rack(
+                name='Rack 4',
+                facility_id='rack-4',
+                site=sites[2],
+                location=locations[2],
+                tenant=tenants[2],
+                status=RackStatusChoices.STATUS_PLANNED,
+                role=rack_roles[2],
+                rack_type=rack_types[0],
+                description='foobar4'
+            ),
+            Rack(
+                name='Rack 5',
+                facility_id='rack-5',
+                site=sites[2],
+                location=locations[2],
+                tenant=tenants[2],
+                status=RackStatusChoices.STATUS_PLANNED,
+                role=rack_roles[2],
+                rack_type=rack_types[1],
+                description='foobar5'
+            ),
         )
         Rack.objects.bulk_create(racks)
 
@@ -771,15 +840,15 @@ class RackTestCase(TestCase, ChangeLoggedFilterSetTests):
 
     def test_width(self):
         params = {'width': [RackWidthChoices.WIDTH_19IN, RackWidthChoices.WIDTH_21IN]}
-        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_u_height(self):
         params = {'u_height': [42, 43]}
-        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_starting_unit(self):
         params = {'starting_unit': [1]}
-        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5)
         params = {'starting_unit': [2]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 0)
 
@@ -787,7 +856,7 @@ class RackTestCase(TestCase, ChangeLoggedFilterSetTests):
         params = {'desc_units': 'true'}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
         params = {'desc_units': 'false'}
-        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_outer_width(self):
         params = {'outer_width': [100, 200]}
@@ -798,7 +867,7 @@ class RackTestCase(TestCase, ChangeLoggedFilterSetTests):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_outer_unit(self):
-        self.assertEqual(Rack.objects.filter(outer_unit__isnull=False).count(), 3)
+        self.assertEqual(Rack.objects.filter(outer_unit__isnull=False).count(), 5)
         params = {'outer_unit': RackDimensionUnitChoices.UNIT_MILLIMETER}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
@@ -832,7 +901,7 @@ class RackTestCase(TestCase, ChangeLoggedFilterSetTests):
 
     def test_status(self):
         params = {'status': [RackStatusChoices.STATUS_ACTIVE, RackStatusChoices.STATUS_PLANNED]}
-        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_role(self):
         roles = RackRole.objects.all()[:2]
@@ -873,6 +942,20 @@ class RackTestCase(TestCase, ChangeLoggedFilterSetTests):
         params = {'weight_unit': WeightUnitChoices.UNIT_POUND}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
+    def test_manufacturer(self):
+        manufacturers = Manufacturer.objects.all()[:2]
+        params = {'manufacturer_id': [manufacturers[0].pk, manufacturers[1].pk]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+        params = {'manufacturer': [manufacturers[0].slug, manufacturers[1].slug]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+
+    def test_rack_type(self):
+        rack_types = RackType.objects.all()[:2]
+        params = {'rack_type_id': [rack_types[0].pk, rack_types[1].pk]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+        params = {'rack_type': [rack_types[0].slug, rack_types[1].slug]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+
 
 class RackReservationTestCase(TestCase, ChangeLoggedFilterSetTests):
     queryset = RackReservation.objects.all()