Parcourir la source

Renamed rack-units API and added a test

Jeremy Stretch il y a 8 ans
Parent
commit
f743410b4e
3 fichiers modifiés avec 13 ajouts et 6 suppressions
  1. 2 2
      netbox/dcim/api/views.py
  2. 1 1
      netbox/dcim/forms.py
  3. 10 3
      netbox/dcim/tests/test_api.py

+ 2 - 2
netbox/dcim/api/views.py

@@ -82,8 +82,8 @@ class RackViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
     write_serializer_class = serializers.WritableRackSerializer
     filter_class = filters.RackFilter
 
-    @detail_route(url_path='rack-units')
-    def rack_units(self, request, pk=None):
+    @detail_route()
+    def units(self, request, pk=None):
         """
         List rack units (by rack)
         """

+ 1 - 1
netbox/dcim/forms.py

@@ -512,7 +512,7 @@ class DeviceForm(BootstrapMixin, CustomFieldForm):
     ))
     position = forms.TypedChoiceField(required=False, empty_value=None,
                                       help_text="The lowest-numbered unit occupied by the device",
-                                      widget=APISelect(api_url='/api/dcim/racks/{{rack}}/rack-units/?face={{face}}',
+                                      widget=APISelect(api_url='/api/dcim/racks/{{rack}}/units/?face={{face}}',
                                                        disabled_indicator='device'))
     manufacturer = forms.ModelChoiceField(queryset=Manufacturer.objects.all(),
                                           widget=forms.Select(attrs={'filter-for': 'device_type'}))

+ 10 - 3
netbox/dcim/tests/test_api.py

@@ -335,13 +335,13 @@ class RackTest(HttpStatusMixin, APITestCase):
         self.rackrole1 = RackRole.objects.create(name='Test Rack Role 1', slug='test-rack-role-1', color='ff0000')
         self.rackrole2 = RackRole.objects.create(name='Test Rack Role 2', slug='test-rack-role-2', color='00ff00')
         self.rack1 = Rack.objects.create(
-            site=self.site1, group=self.rackgroup1, role=self.rackrole1, name='Test Rack 1',
+            site=self.site1, group=self.rackgroup1, role=self.rackrole1, name='Test Rack 1', u_height=42,
         )
         self.rack2 = Rack.objects.create(
-            site=self.site1, group=self.rackgroup1, role=self.rackrole1, name='Test Rack 2'
+            site=self.site1, group=self.rackgroup1, role=self.rackrole1, name='Test Rack 2', u_height=42,
         )
         self.rack3 = Rack.objects.create(
-            site=self.site1, group=self.rackgroup1, role=self.rackrole1, name='Test Rack 3'
+            site=self.site1, group=self.rackgroup1, role=self.rackrole1, name='Test Rack 3', u_height=42,
         )
 
     def test_get_rack(self):
@@ -351,6 +351,13 @@ class RackTest(HttpStatusMixin, APITestCase):
 
         self.assertEqual(response.data['name'], self.rack1.name)
 
+    def test_get_rack_units(self):
+
+        url = reverse('dcim-api:rack-units', kwargs={'pk': self.rack1.pk})
+        response = self.client.get(url, **self.header)
+
+        self.assertEqual(response.data['count'], 42)
+
     def test_list_racks(self):
 
         url = reverse('dcim-api:rack-list')