diff --git a/netbox/circuits/tests/test_api.py b/netbox/circuits/tests/test_api.py index cd456d86c..a6e5fbd57 100644 --- a/netbox/circuits/tests/test_api.py +++ b/netbox/circuits/tests/test_api.py @@ -7,9 +7,10 @@ from django.urls import reverse from dcim.models import Site from circuits.models import Circuit, CircuitTermination, CircuitType, Provider, TERM_SIDE_A, TERM_SIDE_Z from users.models import Token +from utilities.tests import HttpStatusMixin -class ProviderTest(APITestCase): +class ProviderTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -45,7 +46,7 @@ class ProviderTest(APITestCase): url = reverse('circuits-api:provider-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Provider.objects.count(), 4) provider4 = Provider.objects.get(pk=response.data['id']) self.assertEqual(provider4.name, data['name']) @@ -61,7 +62,7 @@ class ProviderTest(APITestCase): url = reverse('circuits-api:provider-detail', kwargs={'pk': self.provider1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Provider.objects.count(), 3) provider1 = Provider.objects.get(pk=response.data['id']) self.assertEqual(provider1.name, data['name']) @@ -72,11 +73,11 @@ class ProviderTest(APITestCase): url = reverse('circuits-api:provider-detail', kwargs={'pk': self.provider1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Provider.objects.count(), 2) -class CircuitTypeTest(APITestCase): +class CircuitTypeTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -112,7 +113,7 @@ class CircuitTypeTest(APITestCase): url = reverse('circuits-api:circuittype-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(CircuitType.objects.count(), 4) circuittype4 = CircuitType.objects.get(pk=response.data['id']) self.assertEqual(circuittype4.name, data['name']) @@ -128,7 +129,7 @@ class CircuitTypeTest(APITestCase): url = reverse('circuits-api:circuittype-detail', kwargs={'pk': self.circuittype1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(CircuitType.objects.count(), 3) circuittype1 = CircuitType.objects.get(pk=response.data['id']) self.assertEqual(circuittype1.name, data['name']) @@ -139,11 +140,11 @@ class CircuitTypeTest(APITestCase): url = reverse('circuits-api:circuittype-detail', kwargs={'pk': self.circuittype1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(CircuitType.objects.count(), 2) -class CircuitTest(APITestCase): +class CircuitTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -184,7 +185,7 @@ class CircuitTest(APITestCase): url = reverse('circuits-api:circuit-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Circuit.objects.count(), 4) circuit4 = Circuit.objects.get(pk=response.data['id']) self.assertEqual(circuit4.cid, data['cid']) @@ -202,7 +203,7 @@ class CircuitTest(APITestCase): url = reverse('circuits-api:circuit-detail', kwargs={'pk': self.circuit1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Circuit.objects.count(), 3) circuit1 = Circuit.objects.get(pk=response.data['id']) self.assertEqual(circuit1.cid, data['cid']) @@ -214,11 +215,11 @@ class CircuitTest(APITestCase): url = reverse('circuits-api:circuit-detail', kwargs={'pk': self.circuit1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Circuit.objects.count(), 2) -class CircuitTerminationTest(APITestCase): +class CircuitTerminationTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -269,7 +270,7 @@ class CircuitTerminationTest(APITestCase): url = reverse('circuits-api:circuittermination-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(CircuitTermination.objects.count(), 4) circuittermination4 = CircuitTermination.objects.get(pk=response.data['id']) self.assertEqual(circuittermination4.circuit_id, data['circuit']) @@ -289,7 +290,7 @@ class CircuitTerminationTest(APITestCase): url = reverse('circuits-api:circuittermination-detail', kwargs={'pk': self.circuittermination1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(CircuitTermination.objects.count(), 3) circuittermination1 = CircuitTermination.objects.get(pk=response.data['id']) self.assertEqual(circuittermination1.circuit_id, data['circuit']) @@ -302,5 +303,5 @@ class CircuitTerminationTest(APITestCase): url = reverse('circuits-api:circuittermination-detail', kwargs={'pk': self.circuittermination1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(CircuitTermination.objects.count(), 2) diff --git a/netbox/dcim/tests/test_api.py b/netbox/dcim/tests/test_api.py index 67ecdbe3f..74751d8be 100644 --- a/netbox/dcim/tests/test_api.py +++ b/netbox/dcim/tests/test_api.py @@ -11,9 +11,10 @@ from dcim.models import ( RackReservation, RackRole, Region, Site, SUBDEVICE_ROLE_CHILD, SUBDEVICE_ROLE_PARENT, ) from users.models import Token +from utilities.tests import HttpStatusMixin -class RegionTest(APITestCase): +class RegionTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -49,7 +50,7 @@ class RegionTest(APITestCase): url = reverse('dcim-api:region-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Region.objects.count(), 4) region4 = Region.objects.get(pk=response.data['id']) self.assertEqual(region4.name, data['name']) @@ -65,7 +66,7 @@ class RegionTest(APITestCase): url = reverse('dcim-api:region-detail', kwargs={'pk': self.region1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Region.objects.count(), 3) region1 = Region.objects.get(pk=response.data['id']) self.assertEqual(region1.name, data['name']) @@ -76,11 +77,11 @@ class RegionTest(APITestCase): url = reverse('dcim-api:region-detail', kwargs={'pk': self.region1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Region.objects.count(), 2) -class SiteTest(APITestCase): +class SiteTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -119,7 +120,7 @@ class SiteTest(APITestCase): url = reverse('dcim-api:site-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Site.objects.count(), 4) site4 = Site.objects.get(pk=response.data['id']) self.assertEqual(site4.name, data['name']) @@ -137,7 +138,7 @@ class SiteTest(APITestCase): url = reverse('dcim-api:site-detail', kwargs={'pk': self.site1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Site.objects.count(), 3) site1 = Site.objects.get(pk=response.data['id']) self.assertEqual(site1.name, data['name']) @@ -149,11 +150,11 @@ class SiteTest(APITestCase): url = reverse('dcim-api:site-detail', kwargs={'pk': self.site1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Site.objects.count(), 2) -class RackGroupTest(APITestCase): +class RackGroupTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -192,7 +193,7 @@ class RackGroupTest(APITestCase): url = reverse('dcim-api:rackgroup-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(RackGroup.objects.count(), 4) rackgroup4 = RackGroup.objects.get(pk=response.data['id']) self.assertEqual(rackgroup4.name, data['name']) @@ -210,7 +211,7 @@ class RackGroupTest(APITestCase): url = reverse('dcim-api:rackgroup-detail', kwargs={'pk': self.rackgroup1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(RackGroup.objects.count(), 3) rackgroup1 = RackGroup.objects.get(pk=response.data['id']) self.assertEqual(rackgroup1.name, data['name']) @@ -222,11 +223,11 @@ class RackGroupTest(APITestCase): url = reverse('dcim-api:rackgroup-detail', kwargs={'pk': self.rackgroup1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(RackGroup.objects.count(), 2) -class RackRoleTest(APITestCase): +class RackRoleTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -263,7 +264,7 @@ class RackRoleTest(APITestCase): url = reverse('dcim-api:rackrole-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(RackRole.objects.count(), 4) rackrole1 = RackRole.objects.get(pk=response.data['id']) self.assertEqual(rackrole1.name, data['name']) @@ -281,7 +282,7 @@ class RackRoleTest(APITestCase): url = reverse('dcim-api:rackrole-detail', kwargs={'pk': self.rackrole1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(RackRole.objects.count(), 3) rackrole1 = RackRole.objects.get(pk=response.data['id']) self.assertEqual(rackrole1.name, data['name']) @@ -293,11 +294,11 @@ class RackRoleTest(APITestCase): url = reverse('dcim-api:rackrole-detail', kwargs={'pk': self.rackrole1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(RackRole.objects.count(), 2) -class RackTest(APITestCase): +class RackTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -347,7 +348,7 @@ class RackTest(APITestCase): url = reverse('dcim-api:rack-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Rack.objects.count(), 4) rack4 = Rack.objects.get(pk=response.data['id']) self.assertEqual(rack4.name, data['name']) @@ -367,7 +368,7 @@ class RackTest(APITestCase): url = reverse('dcim-api:rack-detail', kwargs={'pk': self.rack1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Rack.objects.count(), 3) rack1 = Rack.objects.get(pk=response.data['id']) self.assertEqual(rack1.name, data['name']) @@ -380,11 +381,11 @@ class RackTest(APITestCase): url = reverse('dcim-api:rack-detail', kwargs={'pk': self.rack1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Rack.objects.count(), 2) -class RackReservationTest(APITestCase): +class RackReservationTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -431,7 +432,7 @@ class RackReservationTest(APITestCase): url = reverse('dcim-api:rackreservation-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(RackReservation.objects.count(), 4) rackreservation4 = RackReservation.objects.get(pk=response.data['id']) self.assertEqual(rackreservation4.rack_id, data['rack']) @@ -451,7 +452,7 @@ class RackReservationTest(APITestCase): url = reverse('dcim-api:rackreservation-detail', kwargs={'pk': self.rackreservation1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(RackReservation.objects.count(), 3) rackreservation1 = RackReservation.objects.get(pk=response.data['id']) self.assertEqual(rackreservation1.units, data['units']) @@ -462,11 +463,11 @@ class RackReservationTest(APITestCase): url = reverse('dcim-api:rackreservation-detail', kwargs={'pk': self.rackreservation1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(RackReservation.objects.count(), 2) -class ManufacturerTest(APITestCase): +class ManufacturerTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -502,7 +503,7 @@ class ManufacturerTest(APITestCase): url = reverse('dcim-api:manufacturer-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Manufacturer.objects.count(), 4) manufacturer4 = Manufacturer.objects.get(pk=response.data['id']) self.assertEqual(manufacturer4.name, data['name']) @@ -518,7 +519,7 @@ class ManufacturerTest(APITestCase): url = reverse('dcim-api:manufacturer-detail', kwargs={'pk': self.manufacturer1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Manufacturer.objects.count(), 3) manufacturer1 = Manufacturer.objects.get(pk=response.data['id']) self.assertEqual(manufacturer1.name, data['name']) @@ -529,11 +530,11 @@ class ManufacturerTest(APITestCase): url = reverse('dcim-api:manufacturer-detail', kwargs={'pk': self.manufacturer1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Manufacturer.objects.count(), 2) -class DeviceTypeTest(APITestCase): +class DeviceTypeTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -578,7 +579,7 @@ class DeviceTypeTest(APITestCase): url = reverse('dcim-api:devicetype-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(DeviceType.objects.count(), 4) devicetype4 = DeviceType.objects.get(pk=response.data['id']) self.assertEqual(devicetype4.manufacturer_id, data['manufacturer']) @@ -596,7 +597,7 @@ class DeviceTypeTest(APITestCase): url = reverse('dcim-api:devicetype-detail', kwargs={'pk': self.devicetype1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(DeviceType.objects.count(), 3) devicetype1 = DeviceType.objects.get(pk=response.data['id']) self.assertEqual(devicetype1.manufacturer_id, data['manufacturer']) @@ -608,11 +609,11 @@ class DeviceTypeTest(APITestCase): url = reverse('dcim-api:devicetype-detail', kwargs={'pk': self.devicetype1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(DeviceType.objects.count(), 2) -class ConsolePortTemplateTest(APITestCase): +class ConsolePortTemplateTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -658,7 +659,7 @@ class ConsolePortTemplateTest(APITestCase): url = reverse('dcim-api:consoleporttemplate-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(ConsolePortTemplate.objects.count(), 4) consoleporttemplate4 = ConsolePortTemplate.objects.get(pk=response.data['id']) self.assertEqual(consoleporttemplate4.device_type_id, data['device_type']) @@ -674,7 +675,7 @@ class ConsolePortTemplateTest(APITestCase): url = reverse('dcim-api:consoleporttemplate-detail', kwargs={'pk': self.consoleporttemplate1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(ConsolePortTemplate.objects.count(), 3) consoleporttemplate1 = ConsolePortTemplate.objects.get(pk=response.data['id']) self.assertEqual(consoleporttemplate1.name, data['name']) @@ -684,11 +685,11 @@ class ConsolePortTemplateTest(APITestCase): url = reverse('dcim-api:consoleporttemplate-detail', kwargs={'pk': self.consoleporttemplate1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(ConsolePortTemplate.objects.count(), 2) -class ConsoleServerPortTemplateTest(APITestCase): +class ConsoleServerPortTemplateTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -734,7 +735,7 @@ class ConsoleServerPortTemplateTest(APITestCase): url = reverse('dcim-api:consoleserverporttemplate-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(ConsoleServerPortTemplate.objects.count(), 4) consoleserverporttemplate4 = ConsoleServerPortTemplate.objects.get(pk=response.data['id']) self.assertEqual(consoleserverporttemplate4.device_type_id, data['device_type']) @@ -750,7 +751,7 @@ class ConsoleServerPortTemplateTest(APITestCase): url = reverse('dcim-api:consoleserverporttemplate-detail', kwargs={'pk': self.consoleserverporttemplate1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(ConsoleServerPortTemplate.objects.count(), 3) consoleserverporttemplate1 = ConsoleServerPortTemplate.objects.get(pk=response.data['id']) self.assertEqual(consoleserverporttemplate1.name, data['name']) @@ -760,11 +761,11 @@ class ConsoleServerPortTemplateTest(APITestCase): url = reverse('dcim-api:consoleserverporttemplate-detail', kwargs={'pk': self.consoleserverporttemplate1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(ConsoleServerPortTemplate.objects.count(), 2) -class PowerPortTemplateTest(APITestCase): +class PowerPortTemplateTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -810,7 +811,7 @@ class PowerPortTemplateTest(APITestCase): url = reverse('dcim-api:powerporttemplate-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(PowerPortTemplate.objects.count(), 4) powerporttemplate4 = PowerPortTemplate.objects.get(pk=response.data['id']) self.assertEqual(powerporttemplate4.device_type_id, data['device_type']) @@ -826,7 +827,7 @@ class PowerPortTemplateTest(APITestCase): url = reverse('dcim-api:powerporttemplate-detail', kwargs={'pk': self.powerporttemplate1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(PowerPortTemplate.objects.count(), 3) powerporttemplate1 = PowerPortTemplate.objects.get(pk=response.data['id']) self.assertEqual(powerporttemplate1.name, data['name']) @@ -836,11 +837,11 @@ class PowerPortTemplateTest(APITestCase): url = reverse('dcim-api:powerporttemplate-detail', kwargs={'pk': self.powerporttemplate1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(PowerPortTemplate.objects.count(), 2) -class PowerOutletTemplateTest(APITestCase): +class PowerOutletTemplateTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -886,7 +887,7 @@ class PowerOutletTemplateTest(APITestCase): url = reverse('dcim-api:poweroutlettemplate-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(PowerOutletTemplate.objects.count(), 4) poweroutlettemplate4 = PowerOutletTemplate.objects.get(pk=response.data['id']) self.assertEqual(poweroutlettemplate4.device_type_id, data['device_type']) @@ -902,7 +903,7 @@ class PowerOutletTemplateTest(APITestCase): url = reverse('dcim-api:poweroutlettemplate-detail', kwargs={'pk': self.poweroutlettemplate1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(PowerOutletTemplate.objects.count(), 3) poweroutlettemplate1 = PowerOutletTemplate.objects.get(pk=response.data['id']) self.assertEqual(poweroutlettemplate1.name, data['name']) @@ -912,11 +913,11 @@ class PowerOutletTemplateTest(APITestCase): url = reverse('dcim-api:poweroutlettemplate-detail', kwargs={'pk': self.poweroutlettemplate1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(PowerOutletTemplate.objects.count(), 2) -class InterfaceTemplateTest(APITestCase): +class InterfaceTemplateTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -962,7 +963,7 @@ class InterfaceTemplateTest(APITestCase): url = reverse('dcim-api:interfacetemplate-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(InterfaceTemplate.objects.count(), 4) interfacetemplate4 = InterfaceTemplate.objects.get(pk=response.data['id']) self.assertEqual(interfacetemplate4.device_type_id, data['device_type']) @@ -978,7 +979,7 @@ class InterfaceTemplateTest(APITestCase): url = reverse('dcim-api:interfacetemplate-detail', kwargs={'pk': self.interfacetemplate1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(InterfaceTemplate.objects.count(), 3) interfacetemplate1 = InterfaceTemplate.objects.get(pk=response.data['id']) self.assertEqual(interfacetemplate1.name, data['name']) @@ -988,11 +989,11 @@ class InterfaceTemplateTest(APITestCase): url = reverse('dcim-api:interfacetemplate-detail', kwargs={'pk': self.interfacetemplate1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(InterfaceTemplate.objects.count(), 2) -class DeviceBayTemplateTest(APITestCase): +class DeviceBayTemplateTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -1038,7 +1039,7 @@ class DeviceBayTemplateTest(APITestCase): url = reverse('dcim-api:devicebaytemplate-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(DeviceBayTemplate.objects.count(), 4) devicebaytemplate4 = DeviceBayTemplate.objects.get(pk=response.data['id']) self.assertEqual(devicebaytemplate4.device_type_id, data['device_type']) @@ -1054,7 +1055,7 @@ class DeviceBayTemplateTest(APITestCase): url = reverse('dcim-api:devicebaytemplate-detail', kwargs={'pk': self.devicebaytemplate1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(DeviceBayTemplate.objects.count(), 3) devicebaytemplate1 = DeviceBayTemplate.objects.get(pk=response.data['id']) self.assertEqual(devicebaytemplate1.name, data['name']) @@ -1064,11 +1065,11 @@ class DeviceBayTemplateTest(APITestCase): url = reverse('dcim-api:devicebaytemplate-detail', kwargs={'pk': self.devicebaytemplate1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(DeviceBayTemplate.objects.count(), 2) -class DeviceRoleTest(APITestCase): +class DeviceRoleTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -1111,7 +1112,7 @@ class DeviceRoleTest(APITestCase): url = reverse('dcim-api:devicerole-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(DeviceRole.objects.count(), 4) devicerole4 = DeviceRole.objects.get(pk=response.data['id']) self.assertEqual(devicerole4.name, data['name']) @@ -1129,7 +1130,7 @@ class DeviceRoleTest(APITestCase): url = reverse('dcim-api:devicerole-detail', kwargs={'pk': self.devicerole1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(DeviceRole.objects.count(), 3) devicerole1 = DeviceRole.objects.get(pk=response.data['id']) self.assertEqual(devicerole1.name, data['name']) @@ -1141,11 +1142,11 @@ class DeviceRoleTest(APITestCase): url = reverse('dcim-api:devicerole-detail', kwargs={'pk': self.devicerole1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(DeviceRole.objects.count(), 2) -class PlatformTest(APITestCase): +class PlatformTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -1181,7 +1182,7 @@ class PlatformTest(APITestCase): url = reverse('dcim-api:platform-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Platform.objects.count(), 4) platform4 = Platform.objects.get(pk=response.data['id']) self.assertEqual(platform4.name, data['name']) @@ -1197,7 +1198,7 @@ class PlatformTest(APITestCase): url = reverse('dcim-api:platform-detail', kwargs={'pk': self.platform1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Platform.objects.count(), 3) platform1 = Platform.objects.get(pk=response.data['id']) self.assertEqual(platform1.name, data['name']) @@ -1208,11 +1209,11 @@ class PlatformTest(APITestCase): url = reverse('dcim-api:platform-detail', kwargs={'pk': self.platform1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Platform.objects.count(), 2) -class DeviceTest(APITestCase): +class DeviceTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -1271,7 +1272,7 @@ class DeviceTest(APITestCase): url = reverse('dcim-api:device-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Device.objects.count(), 4) device4 = Device.objects.get(pk=response.data['id']) self.assertEqual(device4.device_type_id, data['device_type']) @@ -1291,7 +1292,7 @@ class DeviceTest(APITestCase): url = reverse('dcim-api:device-detail', kwargs={'pk': self.device1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Device.objects.count(), 3) device1 = Device.objects.get(pk=response.data['id']) self.assertEqual(device1.device_type_id, data['device_type']) @@ -1304,11 +1305,11 @@ class DeviceTest(APITestCase): url = reverse('dcim-api:device-detail', kwargs={'pk': self.device1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Device.objects.count(), 2) -class ConsolePortTest(APITestCase): +class ConsolePortTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -1355,7 +1356,7 @@ class ConsolePortTest(APITestCase): url = reverse('dcim-api:consoleport-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(ConsolePort.objects.count(), 4) consoleport4 = ConsolePort.objects.get(pk=response.data['id']) self.assertEqual(consoleport4.device_id, data['device']) @@ -1374,7 +1375,7 @@ class ConsolePortTest(APITestCase): url = reverse('dcim-api:consoleport-detail', kwargs={'pk': self.consoleport1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(ConsolePort.objects.count(), 3) consoleport1 = ConsolePort.objects.get(pk=response.data['id']) self.assertEqual(consoleport1.name, data['name']) @@ -1385,11 +1386,11 @@ class ConsolePortTest(APITestCase): url = reverse('dcim-api:consoleport-detail', kwargs={'pk': self.consoleport1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(ConsolePort.objects.count(), 2) -class ConsoleServerPortTest(APITestCase): +class ConsoleServerPortTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -1436,7 +1437,7 @@ class ConsoleServerPortTest(APITestCase): url = reverse('dcim-api:consoleserverport-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(ConsoleServerPort.objects.count(), 4) consoleserverport4 = ConsoleServerPort.objects.get(pk=response.data['id']) self.assertEqual(consoleserverport4.device_id, data['device']) @@ -1452,7 +1453,7 @@ class ConsoleServerPortTest(APITestCase): url = reverse('dcim-api:consoleserverport-detail', kwargs={'pk': self.consoleserverport1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(ConsoleServerPort.objects.count(), 3) consoleserverport1 = ConsoleServerPort.objects.get(pk=response.data['id']) self.assertEqual(consoleserverport1.name, data['name']) @@ -1462,11 +1463,11 @@ class ConsoleServerPortTest(APITestCase): url = reverse('dcim-api:consoleserverport-detail', kwargs={'pk': self.consoleserverport1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(ConsoleServerPort.objects.count(), 2) -class PowerPortTest(APITestCase): +class PowerPortTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -1513,7 +1514,7 @@ class PowerPortTest(APITestCase): url = reverse('dcim-api:powerport-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(PowerPort.objects.count(), 4) powerport4 = PowerPort.objects.get(pk=response.data['id']) self.assertEqual(powerport4.device_id, data['device']) @@ -1532,7 +1533,7 @@ class PowerPortTest(APITestCase): url = reverse('dcim-api:powerport-detail', kwargs={'pk': self.powerport1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(PowerPort.objects.count(), 3) powerport1 = PowerPort.objects.get(pk=response.data['id']) self.assertEqual(powerport1.name, data['name']) @@ -1543,11 +1544,11 @@ class PowerPortTest(APITestCase): url = reverse('dcim-api:powerport-detail', kwargs={'pk': self.powerport1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(PowerPort.objects.count(), 2) -class PowerOutletTest(APITestCase): +class PowerOutletTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -1594,7 +1595,7 @@ class PowerOutletTest(APITestCase): url = reverse('dcim-api:poweroutlet-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(PowerOutlet.objects.count(), 4) poweroutlet4 = PowerOutlet.objects.get(pk=response.data['id']) self.assertEqual(poweroutlet4.device_id, data['device']) @@ -1610,7 +1611,7 @@ class PowerOutletTest(APITestCase): url = reverse('dcim-api:poweroutlet-detail', kwargs={'pk': self.poweroutlet1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(PowerOutlet.objects.count(), 3) poweroutlet1 = PowerOutlet.objects.get(pk=response.data['id']) self.assertEqual(poweroutlet1.name, data['name']) @@ -1620,11 +1621,11 @@ class PowerOutletTest(APITestCase): url = reverse('dcim-api:poweroutlet-detail', kwargs={'pk': self.poweroutlet1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(PowerOutlet.objects.count(), 2) -class InterfaceTest(APITestCase): +class InterfaceTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -1671,7 +1672,7 @@ class InterfaceTest(APITestCase): url = reverse('dcim-api:interface-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Interface.objects.count(), 4) interface4 = Interface.objects.get(pk=response.data['id']) self.assertEqual(interface4.device_id, data['device']) @@ -1692,7 +1693,7 @@ class InterfaceTest(APITestCase): url = reverse('dcim-api:interface-detail', kwargs={'pk': self.interface1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Interface.objects.count(), 4) interface1 = Interface.objects.get(pk=response.data['id']) self.assertEqual(interface1.name, data['name']) @@ -1703,11 +1704,11 @@ class InterfaceTest(APITestCase): url = reverse('dcim-api:interface-detail', kwargs={'pk': self.interface1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Interface.objects.count(), 2) -class DeviceBayTest(APITestCase): +class DeviceBayTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -1763,7 +1764,7 @@ class DeviceBayTest(APITestCase): url = reverse('dcim-api:devicebay-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(DeviceBay.objects.count(), 4) devicebay4 = DeviceBay.objects.get(pk=response.data['id']) self.assertEqual(devicebay4.device_id, data['device']) @@ -1781,7 +1782,7 @@ class DeviceBayTest(APITestCase): url = reverse('dcim-api:devicebay-detail', kwargs={'pk': self.devicebay1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(DeviceBay.objects.count(), 3) devicebay1 = DeviceBay.objects.get(pk=response.data['id']) self.assertEqual(devicebay1.name, data['name']) @@ -1792,11 +1793,11 @@ class DeviceBayTest(APITestCase): url = reverse('dcim-api:devicebay-detail', kwargs={'pk': self.devicebay1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(DeviceBay.objects.count(), 2) -class ModuleTest(APITestCase): +class ModuleTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -1845,7 +1846,7 @@ class ModuleTest(APITestCase): url = reverse('dcim-api:module-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Module.objects.count(), 4) module4 = Module.objects.get(pk=response.data['id']) self.assertEqual(module4.device_id, data['device']) @@ -1865,7 +1866,7 @@ class ModuleTest(APITestCase): url = reverse('dcim-api:module-detail', kwargs={'pk': self.module1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Module.objects.count(), 3) module1 = Module.objects.get(pk=response.data['id']) self.assertEqual(module1.device_id, data['device']) @@ -1878,11 +1879,11 @@ class ModuleTest(APITestCase): url = reverse('dcim-api:module-detail', kwargs={'pk': self.module1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Module.objects.count(), 2) -class InterfaceConnectionTest(APITestCase): +class InterfaceConnectionTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -1944,7 +1945,7 @@ class InterfaceConnectionTest(APITestCase): url = reverse('dcim-api:interfaceconnection-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(InterfaceConnection.objects.count(), 4) interfaceconnection4 = InterfaceConnection.objects.get(pk=response.data['id']) self.assertEqual(interfaceconnection4.interface_a_id, data['interface_a']) @@ -1963,7 +1964,7 @@ class InterfaceConnectionTest(APITestCase): url = reverse('dcim-api:interfaceconnection-detail', kwargs={'pk': self.interfaceconnection1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(InterfaceConnection.objects.count(), 3) interfaceconnection1 = InterfaceConnection.objects.get(pk=response.data['id']) self.assertEqual(interfaceconnection1.interface_a_id, data['interface_a']) @@ -1975,5 +1976,5 @@ class InterfaceConnectionTest(APITestCase): url = reverse('dcim-api:interfaceconnection-detail', kwargs={'pk': self.interfaceconnection1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(InterfaceConnection.objects.count(), 2) diff --git a/netbox/ipam/tests/test_api.py b/netbox/ipam/tests/test_api.py index 64d8c98a1..cd58f865b 100644 --- a/netbox/ipam/tests/test_api.py +++ b/netbox/ipam/tests/test_api.py @@ -11,9 +11,10 @@ from ipam.models import ( Aggregate, IPAddress, IP_PROTOCOL_TCP, IP_PROTOCOL_UDP, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF, ) from users.models import Token +from utilities.tests import HttpStatusMixin -class VRFTest(APITestCase): +class VRFTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -49,7 +50,7 @@ class VRFTest(APITestCase): url = reverse('ipam-api:vrf-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(VRF.objects.count(), 4) vrf4 = VRF.objects.get(pk=response.data['id']) self.assertEqual(vrf4.name, data['name']) @@ -65,7 +66,7 @@ class VRFTest(APITestCase): url = reverse('ipam-api:vrf-detail', kwargs={'pk': self.vrf1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(VRF.objects.count(), 3) vrf1 = VRF.objects.get(pk=response.data['id']) self.assertEqual(vrf1.name, data['name']) @@ -76,11 +77,11 @@ class VRFTest(APITestCase): url = reverse('ipam-api:vrf-detail', kwargs={'pk': self.vrf1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(VRF.objects.count(), 2) -class RIRTest(APITestCase): +class RIRTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -116,7 +117,7 @@ class RIRTest(APITestCase): url = reverse('ipam-api:rir-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(RIR.objects.count(), 4) rir4 = RIR.objects.get(pk=response.data['id']) self.assertEqual(rir4.name, data['name']) @@ -132,7 +133,7 @@ class RIRTest(APITestCase): url = reverse('ipam-api:rir-detail', kwargs={'pk': self.rir1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(RIR.objects.count(), 3) rir1 = RIR.objects.get(pk=response.data['id']) self.assertEqual(rir1.name, data['name']) @@ -143,11 +144,11 @@ class RIRTest(APITestCase): url = reverse('ipam-api:rir-detail', kwargs={'pk': self.rir1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(RIR.objects.count(), 2) -class AggregateTest(APITestCase): +class AggregateTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -185,7 +186,7 @@ class AggregateTest(APITestCase): url = reverse('ipam-api:aggregate-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Aggregate.objects.count(), 4) aggregate4 = Aggregate.objects.get(pk=response.data['id']) self.assertEqual(str(aggregate4.prefix), data['prefix']) @@ -201,7 +202,7 @@ class AggregateTest(APITestCase): url = reverse('ipam-api:aggregate-detail', kwargs={'pk': self.aggregate1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Aggregate.objects.count(), 3) aggregate1 = Aggregate.objects.get(pk=response.data['id']) self.assertEqual(str(aggregate1.prefix), data['prefix']) @@ -212,11 +213,11 @@ class AggregateTest(APITestCase): url = reverse('ipam-api:aggregate-detail', kwargs={'pk': self.aggregate1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Aggregate.objects.count(), 2) -class RoleTest(APITestCase): +class RoleTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -252,7 +253,7 @@ class RoleTest(APITestCase): url = reverse('ipam-api:role-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Role.objects.count(), 4) role4 = Role.objects.get(pk=response.data['id']) self.assertEqual(role4.name, data['name']) @@ -268,7 +269,7 @@ class RoleTest(APITestCase): url = reverse('ipam-api:role-detail', kwargs={'pk': self.role1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Role.objects.count(), 3) role1 = Role.objects.get(pk=response.data['id']) self.assertEqual(role1.name, data['name']) @@ -279,11 +280,11 @@ class RoleTest(APITestCase): url = reverse('ipam-api:role-detail', kwargs={'pk': self.role1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Role.objects.count(), 2) -class PrefixTest(APITestCase): +class PrefixTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -326,7 +327,7 @@ class PrefixTest(APITestCase): url = reverse('ipam-api:prefix-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Prefix.objects.count(), 4) prefix4 = Prefix.objects.get(pk=response.data['id']) self.assertEqual(str(prefix4.prefix), data['prefix']) @@ -348,7 +349,7 @@ class PrefixTest(APITestCase): url = reverse('ipam-api:prefix-detail', kwargs={'pk': self.prefix1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Prefix.objects.count(), 3) prefix1 = Prefix.objects.get(pk=response.data['id']) self.assertEqual(str(prefix1.prefix), data['prefix']) @@ -362,11 +363,11 @@ class PrefixTest(APITestCase): url = reverse('ipam-api:prefix-detail', kwargs={'pk': self.prefix1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Prefix.objects.count(), 2) -class IPAddressTest(APITestCase): +class IPAddressTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -403,7 +404,7 @@ class IPAddressTest(APITestCase): url = reverse('ipam-api:ipaddress-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(IPAddress.objects.count(), 4) ipaddress4 = IPAddress.objects.get(pk=response.data['id']) self.assertEqual(str(ipaddress4.address), data['address']) @@ -419,7 +420,7 @@ class IPAddressTest(APITestCase): url = reverse('ipam-api:ipaddress-detail', kwargs={'pk': self.ipaddress1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(IPAddress.objects.count(), 3) ipaddress1 = IPAddress.objects.get(pk=response.data['id']) self.assertEqual(str(ipaddress1.address), data['address']) @@ -430,11 +431,11 @@ class IPAddressTest(APITestCase): url = reverse('ipam-api:ipaddress-detail', kwargs={'pk': self.ipaddress1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(IPAddress.objects.count(), 2) -class VLANGroupTest(APITestCase): +class VLANGroupTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -470,7 +471,7 @@ class VLANGroupTest(APITestCase): url = reverse('ipam-api:vlangroup-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(VLANGroup.objects.count(), 4) vlangroup4 = VLANGroup.objects.get(pk=response.data['id']) self.assertEqual(vlangroup4.name, data['name']) @@ -486,7 +487,7 @@ class VLANGroupTest(APITestCase): url = reverse('ipam-api:vlangroup-detail', kwargs={'pk': self.vlangroup1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(VLANGroup.objects.count(), 3) vlangroup1 = VLANGroup.objects.get(pk=response.data['id']) self.assertEqual(vlangroup1.name, data['name']) @@ -497,11 +498,11 @@ class VLANGroupTest(APITestCase): url = reverse('ipam-api:vlangroup-detail', kwargs={'pk': self.vlangroup1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(VLANGroup.objects.count(), 2) -class VLANTest(APITestCase): +class VLANTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -537,7 +538,7 @@ class VLANTest(APITestCase): url = reverse('ipam-api:vlan-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(VLAN.objects.count(), 4) vlan4 = VLAN.objects.get(pk=response.data['id']) self.assertEqual(vlan4.vid, data['vid']) @@ -553,7 +554,7 @@ class VLANTest(APITestCase): url = reverse('ipam-api:vlan-detail', kwargs={'pk': self.vlan1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(VLAN.objects.count(), 3) vlan1 = VLAN.objects.get(pk=response.data['id']) self.assertEqual(vlan1.vid, data['vid']) @@ -564,11 +565,11 @@ class VLANTest(APITestCase): url = reverse('ipam-api:vlan-detail', kwargs={'pk': self.vlan1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(VLAN.objects.count(), 2) -class ServiceTest(APITestCase): +class ServiceTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -622,7 +623,7 @@ class ServiceTest(APITestCase): url = reverse('ipam-api:service-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Service.objects.count(), 4) service4 = Service.objects.get(pk=response.data['id']) self.assertEqual(service4.device_id, data['device']) @@ -642,7 +643,7 @@ class ServiceTest(APITestCase): url = reverse('ipam-api:service-detail', kwargs={'pk': self.service1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Service.objects.count(), 3) service1 = Service.objects.get(pk=response.data['id']) self.assertEqual(service1.device_id, data['device']) @@ -655,5 +656,5 @@ class ServiceTest(APITestCase): url = reverse('ipam-api:service-detail', kwargs={'pk': self.service1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Service.objects.count(), 2) diff --git a/netbox/secrets/tests/test_api.py b/netbox/secrets/tests/test_api.py index 99fbc0aaf..854e90882 100644 --- a/netbox/secrets/tests/test_api.py +++ b/netbox/secrets/tests/test_api.py @@ -8,6 +8,7 @@ from django.urls import reverse from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Site from secrets.models import Secret, SecretRole, SessionKey, UserKey from users.models import Token +from utilities.tests import HttpStatusMixin # Dummy RSA key pair for testing use only @@ -50,7 +51,7 @@ qQIDAQAB -----END PUBLIC KEY-----""" -class SecretRoleTest(APITestCase): +class SecretRoleTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -86,7 +87,7 @@ class SecretRoleTest(APITestCase): url = reverse('secrets-api:secretrole-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(SecretRole.objects.count(), 4) secretrole4 = SecretRole.objects.get(pk=response.data['id']) self.assertEqual(secretrole4.name, data['name']) @@ -102,7 +103,7 @@ class SecretRoleTest(APITestCase): url = reverse('secrets-api:secretrole-detail', kwargs={'pk': self.secretrole1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(SecretRole.objects.count(), 3) secretrole1 = SecretRole.objects.get(pk=response.data['id']) self.assertEqual(secretrole1.name, data['name']) @@ -113,11 +114,11 @@ class SecretRoleTest(APITestCase): url = reverse('secrets-api:secretrole-detail', kwargs={'pk': self.secretrole1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(SecretRole.objects.count(), 2) -class SecretTest(APITestCase): +class SecretTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -191,7 +192,7 @@ class SecretTest(APITestCase): url = reverse('secrets-api:secret-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.data) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(response.data['plaintext'], data['plaintext']) self.assertEqual(Secret.objects.count(), 4) secret4 = Secret.objects.get(pk=response.data['id']) @@ -210,7 +211,7 @@ class SecretTest(APITestCase): url = reverse('secrets-api:secret-detail', kwargs={'pk': self.secret1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK, response.data) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(response.data['plaintext'], data['plaintext']) self.assertEqual(Secret.objects.count(), 3) secret1 = Secret.objects.get(pk=response.data['id']) @@ -223,5 +224,5 @@ class SecretTest(APITestCase): url = reverse('secrets-api:secret-detail', kwargs={'pk': self.secret1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Secret.objects.count(), 2) diff --git a/netbox/tenancy/tests/test_api.py b/netbox/tenancy/tests/test_api.py index 9d0f925c0..11e89fae1 100644 --- a/netbox/tenancy/tests/test_api.py +++ b/netbox/tenancy/tests/test_api.py @@ -6,9 +6,10 @@ from django.urls import reverse from tenancy.models import Tenant, TenantGroup from users.models import Token +from utilities.tests import HttpStatusMixin -class TenantGroupTest(APITestCase): +class TenantGroupTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -44,7 +45,7 @@ class TenantGroupTest(APITestCase): url = reverse('tenancy-api:tenantgroup-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(TenantGroup.objects.count(), 4) tenantgroup4 = TenantGroup.objects.get(pk=response.data['id']) self.assertEqual(tenantgroup4.name, data['name']) @@ -60,7 +61,7 @@ class TenantGroupTest(APITestCase): url = reverse('tenancy-api:tenantgroup-detail', kwargs={'pk': self.tenantgroup1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(TenantGroup.objects.count(), 3) tenantgroup1 = TenantGroup.objects.get(pk=response.data['id']) self.assertEqual(tenantgroup1.name, data['name']) @@ -71,11 +72,11 @@ class TenantGroupTest(APITestCase): url = reverse('tenancy-api:tenantgroup-detail', kwargs={'pk': self.tenantgroup1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(TenantGroup.objects.count(), 2) -class TenantTest(APITestCase): +class TenantTest(HttpStatusMixin, APITestCase): def setUp(self): @@ -114,7 +115,7 @@ class TenantTest(APITestCase): url = reverse('tenancy-api:tenant-list') response = self.client.post(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertHttpStatus(response, status.HTTP_201_CREATED) self.assertEqual(Tenant.objects.count(), 4) tenant4 = Tenant.objects.get(pk=response.data['id']) self.assertEqual(tenant4.name, data['name']) @@ -132,7 +133,7 @@ class TenantTest(APITestCase): url = reverse('tenancy-api:tenant-detail', kwargs={'pk': self.tenant1.pk}) response = self.client.put(url, data, **self.header) - self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertHttpStatus(response, status.HTTP_200_OK) self.assertEqual(Tenant.objects.count(), 3) tenant1 = Tenant.objects.get(pk=response.data['id']) self.assertEqual(tenant1.name, data['name']) @@ -144,5 +145,5 @@ class TenantTest(APITestCase): url = reverse('tenancy-api:tenant-detail', kwargs={'pk': self.tenant1.pk}) response = self.client.delete(url, **self.header) - self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(Tenant.objects.count(), 2) diff --git a/netbox/utilities/tests.py b/netbox/utilities/tests.py new file mode 100644 index 000000000..d80b42c63 --- /dev/null +++ b/netbox/utilities/tests.py @@ -0,0 +1,10 @@ +class HttpStatusMixin(object): + """ + Custom mixin to provide more detail in the event of an unexpected HTTP response. + """ + + def assertHttpStatus(self, response, expected_status): + err_message = "Expected HTTP status {}; received {}: {}" + self.assertEqual(response.status_code, expected_status, err_message.format( + expected_status, response.status_code, response.data + ))