Introduced HttpStatusMixin to provide more detail on HTTP response status test failures

This commit is contained in:
Jeremy Stretch 2017-03-20 13:46:47 -04:00
parent 1988c02b7f
commit 42fd14f5c0
6 changed files with 183 additions and 168 deletions

View File

@ -7,9 +7,10 @@ from django.urls import reverse
from dcim.models import Site from dcim.models import Site
from circuits.models import Circuit, CircuitTermination, CircuitType, Provider, TERM_SIDE_A, TERM_SIDE_Z from circuits.models import Circuit, CircuitTermination, CircuitType, Provider, TERM_SIDE_A, TERM_SIDE_Z
from users.models import Token from users.models import Token
from utilities.tests import HttpStatusMixin
class ProviderTest(APITestCase): class ProviderTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -45,7 +46,7 @@ class ProviderTest(APITestCase):
url = reverse('circuits-api:provider-list') url = reverse('circuits-api:provider-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Provider.objects.count(), 4)
provider4 = Provider.objects.get(pk=response.data['id']) provider4 = Provider.objects.get(pk=response.data['id'])
self.assertEqual(provider4.name, data['name']) self.assertEqual(provider4.name, data['name'])
@ -61,7 +62,7 @@ class ProviderTest(APITestCase):
url = reverse('circuits-api:provider-detail', kwargs={'pk': self.provider1.pk}) url = reverse('circuits-api:provider-detail', kwargs={'pk': self.provider1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Provider.objects.count(), 3)
provider1 = Provider.objects.get(pk=response.data['id']) provider1 = Provider.objects.get(pk=response.data['id'])
self.assertEqual(provider1.name, data['name']) self.assertEqual(provider1.name, data['name'])
@ -72,11 +73,11 @@ class ProviderTest(APITestCase):
url = reverse('circuits-api:provider-detail', kwargs={'pk': self.provider1.pk}) url = reverse('circuits-api:provider-detail', kwargs={'pk': self.provider1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Provider.objects.count(), 2)
class CircuitTypeTest(APITestCase): class CircuitTypeTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -112,7 +113,7 @@ class CircuitTypeTest(APITestCase):
url = reverse('circuits-api:circuittype-list') url = reverse('circuits-api:circuittype-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(CircuitType.objects.count(), 4)
circuittype4 = CircuitType.objects.get(pk=response.data['id']) circuittype4 = CircuitType.objects.get(pk=response.data['id'])
self.assertEqual(circuittype4.name, data['name']) self.assertEqual(circuittype4.name, data['name'])
@ -128,7 +129,7 @@ class CircuitTypeTest(APITestCase):
url = reverse('circuits-api:circuittype-detail', kwargs={'pk': self.circuittype1.pk}) url = reverse('circuits-api:circuittype-detail', kwargs={'pk': self.circuittype1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(CircuitType.objects.count(), 3)
circuittype1 = CircuitType.objects.get(pk=response.data['id']) circuittype1 = CircuitType.objects.get(pk=response.data['id'])
self.assertEqual(circuittype1.name, data['name']) self.assertEqual(circuittype1.name, data['name'])
@ -139,11 +140,11 @@ class CircuitTypeTest(APITestCase):
url = reverse('circuits-api:circuittype-detail', kwargs={'pk': self.circuittype1.pk}) url = reverse('circuits-api:circuittype-detail', kwargs={'pk': self.circuittype1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(CircuitType.objects.count(), 2)
class CircuitTest(APITestCase): class CircuitTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -184,7 +185,7 @@ class CircuitTest(APITestCase):
url = reverse('circuits-api:circuit-list') url = reverse('circuits-api:circuit-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Circuit.objects.count(), 4)
circuit4 = Circuit.objects.get(pk=response.data['id']) circuit4 = Circuit.objects.get(pk=response.data['id'])
self.assertEqual(circuit4.cid, data['cid']) self.assertEqual(circuit4.cid, data['cid'])
@ -202,7 +203,7 @@ class CircuitTest(APITestCase):
url = reverse('circuits-api:circuit-detail', kwargs={'pk': self.circuit1.pk}) url = reverse('circuits-api:circuit-detail', kwargs={'pk': self.circuit1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Circuit.objects.count(), 3)
circuit1 = Circuit.objects.get(pk=response.data['id']) circuit1 = Circuit.objects.get(pk=response.data['id'])
self.assertEqual(circuit1.cid, data['cid']) self.assertEqual(circuit1.cid, data['cid'])
@ -214,11 +215,11 @@ class CircuitTest(APITestCase):
url = reverse('circuits-api:circuit-detail', kwargs={'pk': self.circuit1.pk}) url = reverse('circuits-api:circuit-detail', kwargs={'pk': self.circuit1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Circuit.objects.count(), 2)
class CircuitTerminationTest(APITestCase): class CircuitTerminationTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -269,7 +270,7 @@ class CircuitTerminationTest(APITestCase):
url = reverse('circuits-api:circuittermination-list') url = reverse('circuits-api:circuittermination-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(CircuitTermination.objects.count(), 4)
circuittermination4 = CircuitTermination.objects.get(pk=response.data['id']) circuittermination4 = CircuitTermination.objects.get(pk=response.data['id'])
self.assertEqual(circuittermination4.circuit_id, data['circuit']) 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}) url = reverse('circuits-api:circuittermination-detail', kwargs={'pk': self.circuittermination1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(CircuitTermination.objects.count(), 3)
circuittermination1 = CircuitTermination.objects.get(pk=response.data['id']) circuittermination1 = CircuitTermination.objects.get(pk=response.data['id'])
self.assertEqual(circuittermination1.circuit_id, data['circuit']) 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}) url = reverse('circuits-api:circuittermination-detail', kwargs={'pk': self.circuittermination1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(CircuitTermination.objects.count(), 2)

View File

@ -11,9 +11,10 @@ from dcim.models import (
RackReservation, RackRole, Region, Site, SUBDEVICE_ROLE_CHILD, SUBDEVICE_ROLE_PARENT, RackReservation, RackRole, Region, Site, SUBDEVICE_ROLE_CHILD, SUBDEVICE_ROLE_PARENT,
) )
from users.models import Token from users.models import Token
from utilities.tests import HttpStatusMixin
class RegionTest(APITestCase): class RegionTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -49,7 +50,7 @@ class RegionTest(APITestCase):
url = reverse('dcim-api:region-list') url = reverse('dcim-api:region-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Region.objects.count(), 4)
region4 = Region.objects.get(pk=response.data['id']) region4 = Region.objects.get(pk=response.data['id'])
self.assertEqual(region4.name, data['name']) self.assertEqual(region4.name, data['name'])
@ -65,7 +66,7 @@ class RegionTest(APITestCase):
url = reverse('dcim-api:region-detail', kwargs={'pk': self.region1.pk}) url = reverse('dcim-api:region-detail', kwargs={'pk': self.region1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Region.objects.count(), 3)
region1 = Region.objects.get(pk=response.data['id']) region1 = Region.objects.get(pk=response.data['id'])
self.assertEqual(region1.name, data['name']) self.assertEqual(region1.name, data['name'])
@ -76,11 +77,11 @@ class RegionTest(APITestCase):
url = reverse('dcim-api:region-detail', kwargs={'pk': self.region1.pk}) url = reverse('dcim-api:region-detail', kwargs={'pk': self.region1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Region.objects.count(), 2)
class SiteTest(APITestCase): class SiteTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -119,7 +120,7 @@ class SiteTest(APITestCase):
url = reverse('dcim-api:site-list') url = reverse('dcim-api:site-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Site.objects.count(), 4)
site4 = Site.objects.get(pk=response.data['id']) site4 = Site.objects.get(pk=response.data['id'])
self.assertEqual(site4.name, data['name']) self.assertEqual(site4.name, data['name'])
@ -137,7 +138,7 @@ class SiteTest(APITestCase):
url = reverse('dcim-api:site-detail', kwargs={'pk': self.site1.pk}) url = reverse('dcim-api:site-detail', kwargs={'pk': self.site1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Site.objects.count(), 3)
site1 = Site.objects.get(pk=response.data['id']) site1 = Site.objects.get(pk=response.data['id'])
self.assertEqual(site1.name, data['name']) self.assertEqual(site1.name, data['name'])
@ -149,11 +150,11 @@ class SiteTest(APITestCase):
url = reverse('dcim-api:site-detail', kwargs={'pk': self.site1.pk}) url = reverse('dcim-api:site-detail', kwargs={'pk': self.site1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Site.objects.count(), 2)
class RackGroupTest(APITestCase): class RackGroupTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -192,7 +193,7 @@ class RackGroupTest(APITestCase):
url = reverse('dcim-api:rackgroup-list') url = reverse('dcim-api:rackgroup-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(RackGroup.objects.count(), 4)
rackgroup4 = RackGroup.objects.get(pk=response.data['id']) rackgroup4 = RackGroup.objects.get(pk=response.data['id'])
self.assertEqual(rackgroup4.name, data['name']) self.assertEqual(rackgroup4.name, data['name'])
@ -210,7 +211,7 @@ class RackGroupTest(APITestCase):
url = reverse('dcim-api:rackgroup-detail', kwargs={'pk': self.rackgroup1.pk}) url = reverse('dcim-api:rackgroup-detail', kwargs={'pk': self.rackgroup1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(RackGroup.objects.count(), 3)
rackgroup1 = RackGroup.objects.get(pk=response.data['id']) rackgroup1 = RackGroup.objects.get(pk=response.data['id'])
self.assertEqual(rackgroup1.name, data['name']) self.assertEqual(rackgroup1.name, data['name'])
@ -222,11 +223,11 @@ class RackGroupTest(APITestCase):
url = reverse('dcim-api:rackgroup-detail', kwargs={'pk': self.rackgroup1.pk}) url = reverse('dcim-api:rackgroup-detail', kwargs={'pk': self.rackgroup1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(RackGroup.objects.count(), 2)
class RackRoleTest(APITestCase): class RackRoleTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -263,7 +264,7 @@ class RackRoleTest(APITestCase):
url = reverse('dcim-api:rackrole-list') url = reverse('dcim-api:rackrole-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(RackRole.objects.count(), 4)
rackrole1 = RackRole.objects.get(pk=response.data['id']) rackrole1 = RackRole.objects.get(pk=response.data['id'])
self.assertEqual(rackrole1.name, data['name']) self.assertEqual(rackrole1.name, data['name'])
@ -281,7 +282,7 @@ class RackRoleTest(APITestCase):
url = reverse('dcim-api:rackrole-detail', kwargs={'pk': self.rackrole1.pk}) url = reverse('dcim-api:rackrole-detail', kwargs={'pk': self.rackrole1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(RackRole.objects.count(), 3)
rackrole1 = RackRole.objects.get(pk=response.data['id']) rackrole1 = RackRole.objects.get(pk=response.data['id'])
self.assertEqual(rackrole1.name, data['name']) self.assertEqual(rackrole1.name, data['name'])
@ -293,11 +294,11 @@ class RackRoleTest(APITestCase):
url = reverse('dcim-api:rackrole-detail', kwargs={'pk': self.rackrole1.pk}) url = reverse('dcim-api:rackrole-detail', kwargs={'pk': self.rackrole1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(RackRole.objects.count(), 2)
class RackTest(APITestCase): class RackTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -347,7 +348,7 @@ class RackTest(APITestCase):
url = reverse('dcim-api:rack-list') url = reverse('dcim-api:rack-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Rack.objects.count(), 4)
rack4 = Rack.objects.get(pk=response.data['id']) rack4 = Rack.objects.get(pk=response.data['id'])
self.assertEqual(rack4.name, data['name']) self.assertEqual(rack4.name, data['name'])
@ -367,7 +368,7 @@ class RackTest(APITestCase):
url = reverse('dcim-api:rack-detail', kwargs={'pk': self.rack1.pk}) url = reverse('dcim-api:rack-detail', kwargs={'pk': self.rack1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Rack.objects.count(), 3)
rack1 = Rack.objects.get(pk=response.data['id']) rack1 = Rack.objects.get(pk=response.data['id'])
self.assertEqual(rack1.name, data['name']) self.assertEqual(rack1.name, data['name'])
@ -380,11 +381,11 @@ class RackTest(APITestCase):
url = reverse('dcim-api:rack-detail', kwargs={'pk': self.rack1.pk}) url = reverse('dcim-api:rack-detail', kwargs={'pk': self.rack1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Rack.objects.count(), 2)
class RackReservationTest(APITestCase): class RackReservationTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -431,7 +432,7 @@ class RackReservationTest(APITestCase):
url = reverse('dcim-api:rackreservation-list') url = reverse('dcim-api:rackreservation-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(RackReservation.objects.count(), 4)
rackreservation4 = RackReservation.objects.get(pk=response.data['id']) rackreservation4 = RackReservation.objects.get(pk=response.data['id'])
self.assertEqual(rackreservation4.rack_id, data['rack']) 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}) url = reverse('dcim-api:rackreservation-detail', kwargs={'pk': self.rackreservation1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(RackReservation.objects.count(), 3)
rackreservation1 = RackReservation.objects.get(pk=response.data['id']) rackreservation1 = RackReservation.objects.get(pk=response.data['id'])
self.assertEqual(rackreservation1.units, data['units']) self.assertEqual(rackreservation1.units, data['units'])
@ -462,11 +463,11 @@ class RackReservationTest(APITestCase):
url = reverse('dcim-api:rackreservation-detail', kwargs={'pk': self.rackreservation1.pk}) url = reverse('dcim-api:rackreservation-detail', kwargs={'pk': self.rackreservation1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(RackReservation.objects.count(), 2)
class ManufacturerTest(APITestCase): class ManufacturerTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -502,7 +503,7 @@ class ManufacturerTest(APITestCase):
url = reverse('dcim-api:manufacturer-list') url = reverse('dcim-api:manufacturer-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Manufacturer.objects.count(), 4)
manufacturer4 = Manufacturer.objects.get(pk=response.data['id']) manufacturer4 = Manufacturer.objects.get(pk=response.data['id'])
self.assertEqual(manufacturer4.name, data['name']) self.assertEqual(manufacturer4.name, data['name'])
@ -518,7 +519,7 @@ class ManufacturerTest(APITestCase):
url = reverse('dcim-api:manufacturer-detail', kwargs={'pk': self.manufacturer1.pk}) url = reverse('dcim-api:manufacturer-detail', kwargs={'pk': self.manufacturer1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Manufacturer.objects.count(), 3)
manufacturer1 = Manufacturer.objects.get(pk=response.data['id']) manufacturer1 = Manufacturer.objects.get(pk=response.data['id'])
self.assertEqual(manufacturer1.name, data['name']) self.assertEqual(manufacturer1.name, data['name'])
@ -529,11 +530,11 @@ class ManufacturerTest(APITestCase):
url = reverse('dcim-api:manufacturer-detail', kwargs={'pk': self.manufacturer1.pk}) url = reverse('dcim-api:manufacturer-detail', kwargs={'pk': self.manufacturer1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Manufacturer.objects.count(), 2)
class DeviceTypeTest(APITestCase): class DeviceTypeTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -578,7 +579,7 @@ class DeviceTypeTest(APITestCase):
url = reverse('dcim-api:devicetype-list') url = reverse('dcim-api:devicetype-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(DeviceType.objects.count(), 4)
devicetype4 = DeviceType.objects.get(pk=response.data['id']) devicetype4 = DeviceType.objects.get(pk=response.data['id'])
self.assertEqual(devicetype4.manufacturer_id, data['manufacturer']) 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}) url = reverse('dcim-api:devicetype-detail', kwargs={'pk': self.devicetype1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(DeviceType.objects.count(), 3)
devicetype1 = DeviceType.objects.get(pk=response.data['id']) devicetype1 = DeviceType.objects.get(pk=response.data['id'])
self.assertEqual(devicetype1.manufacturer_id, data['manufacturer']) 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}) url = reverse('dcim-api:devicetype-detail', kwargs={'pk': self.devicetype1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(DeviceType.objects.count(), 2)
class ConsolePortTemplateTest(APITestCase): class ConsolePortTemplateTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -658,7 +659,7 @@ class ConsolePortTemplateTest(APITestCase):
url = reverse('dcim-api:consoleporttemplate-list') url = reverse('dcim-api:consoleporttemplate-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(ConsolePortTemplate.objects.count(), 4)
consoleporttemplate4 = ConsolePortTemplate.objects.get(pk=response.data['id']) consoleporttemplate4 = ConsolePortTemplate.objects.get(pk=response.data['id'])
self.assertEqual(consoleporttemplate4.device_type_id, data['device_type']) 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}) url = reverse('dcim-api:consoleporttemplate-detail', kwargs={'pk': self.consoleporttemplate1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(ConsolePortTemplate.objects.count(), 3)
consoleporttemplate1 = ConsolePortTemplate.objects.get(pk=response.data['id']) consoleporttemplate1 = ConsolePortTemplate.objects.get(pk=response.data['id'])
self.assertEqual(consoleporttemplate1.name, data['name']) self.assertEqual(consoleporttemplate1.name, data['name'])
@ -684,11 +685,11 @@ class ConsolePortTemplateTest(APITestCase):
url = reverse('dcim-api:consoleporttemplate-detail', kwargs={'pk': self.consoleporttemplate1.pk}) url = reverse('dcim-api:consoleporttemplate-detail', kwargs={'pk': self.consoleporttemplate1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(ConsolePortTemplate.objects.count(), 2)
class ConsoleServerPortTemplateTest(APITestCase): class ConsoleServerPortTemplateTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -734,7 +735,7 @@ class ConsoleServerPortTemplateTest(APITestCase):
url = reverse('dcim-api:consoleserverporttemplate-list') url = reverse('dcim-api:consoleserverporttemplate-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(ConsoleServerPortTemplate.objects.count(), 4)
consoleserverporttemplate4 = ConsoleServerPortTemplate.objects.get(pk=response.data['id']) consoleserverporttemplate4 = ConsoleServerPortTemplate.objects.get(pk=response.data['id'])
self.assertEqual(consoleserverporttemplate4.device_type_id, data['device_type']) 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}) url = reverse('dcim-api:consoleserverporttemplate-detail', kwargs={'pk': self.consoleserverporttemplate1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(ConsoleServerPortTemplate.objects.count(), 3)
consoleserverporttemplate1 = ConsoleServerPortTemplate.objects.get(pk=response.data['id']) consoleserverporttemplate1 = ConsoleServerPortTemplate.objects.get(pk=response.data['id'])
self.assertEqual(consoleserverporttemplate1.name, data['name']) self.assertEqual(consoleserverporttemplate1.name, data['name'])
@ -760,11 +761,11 @@ class ConsoleServerPortTemplateTest(APITestCase):
url = reverse('dcim-api:consoleserverporttemplate-detail', kwargs={'pk': self.consoleserverporttemplate1.pk}) url = reverse('dcim-api:consoleserverporttemplate-detail', kwargs={'pk': self.consoleserverporttemplate1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(ConsoleServerPortTemplate.objects.count(), 2)
class PowerPortTemplateTest(APITestCase): class PowerPortTemplateTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -810,7 +811,7 @@ class PowerPortTemplateTest(APITestCase):
url = reverse('dcim-api:powerporttemplate-list') url = reverse('dcim-api:powerporttemplate-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(PowerPortTemplate.objects.count(), 4)
powerporttemplate4 = PowerPortTemplate.objects.get(pk=response.data['id']) powerporttemplate4 = PowerPortTemplate.objects.get(pk=response.data['id'])
self.assertEqual(powerporttemplate4.device_type_id, data['device_type']) 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}) url = reverse('dcim-api:powerporttemplate-detail', kwargs={'pk': self.powerporttemplate1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(PowerPortTemplate.objects.count(), 3)
powerporttemplate1 = PowerPortTemplate.objects.get(pk=response.data['id']) powerporttemplate1 = PowerPortTemplate.objects.get(pk=response.data['id'])
self.assertEqual(powerporttemplate1.name, data['name']) self.assertEqual(powerporttemplate1.name, data['name'])
@ -836,11 +837,11 @@ class PowerPortTemplateTest(APITestCase):
url = reverse('dcim-api:powerporttemplate-detail', kwargs={'pk': self.powerporttemplate1.pk}) url = reverse('dcim-api:powerporttemplate-detail', kwargs={'pk': self.powerporttemplate1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(PowerPortTemplate.objects.count(), 2)
class PowerOutletTemplateTest(APITestCase): class PowerOutletTemplateTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -886,7 +887,7 @@ class PowerOutletTemplateTest(APITestCase):
url = reverse('dcim-api:poweroutlettemplate-list') url = reverse('dcim-api:poweroutlettemplate-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(PowerOutletTemplate.objects.count(), 4)
poweroutlettemplate4 = PowerOutletTemplate.objects.get(pk=response.data['id']) poweroutlettemplate4 = PowerOutletTemplate.objects.get(pk=response.data['id'])
self.assertEqual(poweroutlettemplate4.device_type_id, data['device_type']) 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}) url = reverse('dcim-api:poweroutlettemplate-detail', kwargs={'pk': self.poweroutlettemplate1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(PowerOutletTemplate.objects.count(), 3)
poweroutlettemplate1 = PowerOutletTemplate.objects.get(pk=response.data['id']) poweroutlettemplate1 = PowerOutletTemplate.objects.get(pk=response.data['id'])
self.assertEqual(poweroutlettemplate1.name, data['name']) self.assertEqual(poweroutlettemplate1.name, data['name'])
@ -912,11 +913,11 @@ class PowerOutletTemplateTest(APITestCase):
url = reverse('dcim-api:poweroutlettemplate-detail', kwargs={'pk': self.poweroutlettemplate1.pk}) url = reverse('dcim-api:poweroutlettemplate-detail', kwargs={'pk': self.poweroutlettemplate1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(PowerOutletTemplate.objects.count(), 2)
class InterfaceTemplateTest(APITestCase): class InterfaceTemplateTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -962,7 +963,7 @@ class InterfaceTemplateTest(APITestCase):
url = reverse('dcim-api:interfacetemplate-list') url = reverse('dcim-api:interfacetemplate-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(InterfaceTemplate.objects.count(), 4)
interfacetemplate4 = InterfaceTemplate.objects.get(pk=response.data['id']) interfacetemplate4 = InterfaceTemplate.objects.get(pk=response.data['id'])
self.assertEqual(interfacetemplate4.device_type_id, data['device_type']) 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}) url = reverse('dcim-api:interfacetemplate-detail', kwargs={'pk': self.interfacetemplate1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(InterfaceTemplate.objects.count(), 3)
interfacetemplate1 = InterfaceTemplate.objects.get(pk=response.data['id']) interfacetemplate1 = InterfaceTemplate.objects.get(pk=response.data['id'])
self.assertEqual(interfacetemplate1.name, data['name']) self.assertEqual(interfacetemplate1.name, data['name'])
@ -988,11 +989,11 @@ class InterfaceTemplateTest(APITestCase):
url = reverse('dcim-api:interfacetemplate-detail', kwargs={'pk': self.interfacetemplate1.pk}) url = reverse('dcim-api:interfacetemplate-detail', kwargs={'pk': self.interfacetemplate1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(InterfaceTemplate.objects.count(), 2)
class DeviceBayTemplateTest(APITestCase): class DeviceBayTemplateTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -1038,7 +1039,7 @@ class DeviceBayTemplateTest(APITestCase):
url = reverse('dcim-api:devicebaytemplate-list') url = reverse('dcim-api:devicebaytemplate-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(DeviceBayTemplate.objects.count(), 4)
devicebaytemplate4 = DeviceBayTemplate.objects.get(pk=response.data['id']) devicebaytemplate4 = DeviceBayTemplate.objects.get(pk=response.data['id'])
self.assertEqual(devicebaytemplate4.device_type_id, data['device_type']) 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}) url = reverse('dcim-api:devicebaytemplate-detail', kwargs={'pk': self.devicebaytemplate1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(DeviceBayTemplate.objects.count(), 3)
devicebaytemplate1 = DeviceBayTemplate.objects.get(pk=response.data['id']) devicebaytemplate1 = DeviceBayTemplate.objects.get(pk=response.data['id'])
self.assertEqual(devicebaytemplate1.name, data['name']) self.assertEqual(devicebaytemplate1.name, data['name'])
@ -1064,11 +1065,11 @@ class DeviceBayTemplateTest(APITestCase):
url = reverse('dcim-api:devicebaytemplate-detail', kwargs={'pk': self.devicebaytemplate1.pk}) url = reverse('dcim-api:devicebaytemplate-detail', kwargs={'pk': self.devicebaytemplate1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(DeviceBayTemplate.objects.count(), 2)
class DeviceRoleTest(APITestCase): class DeviceRoleTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -1111,7 +1112,7 @@ class DeviceRoleTest(APITestCase):
url = reverse('dcim-api:devicerole-list') url = reverse('dcim-api:devicerole-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(DeviceRole.objects.count(), 4)
devicerole4 = DeviceRole.objects.get(pk=response.data['id']) devicerole4 = DeviceRole.objects.get(pk=response.data['id'])
self.assertEqual(devicerole4.name, data['name']) self.assertEqual(devicerole4.name, data['name'])
@ -1129,7 +1130,7 @@ class DeviceRoleTest(APITestCase):
url = reverse('dcim-api:devicerole-detail', kwargs={'pk': self.devicerole1.pk}) url = reverse('dcim-api:devicerole-detail', kwargs={'pk': self.devicerole1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(DeviceRole.objects.count(), 3)
devicerole1 = DeviceRole.objects.get(pk=response.data['id']) devicerole1 = DeviceRole.objects.get(pk=response.data['id'])
self.assertEqual(devicerole1.name, data['name']) self.assertEqual(devicerole1.name, data['name'])
@ -1141,11 +1142,11 @@ class DeviceRoleTest(APITestCase):
url = reverse('dcim-api:devicerole-detail', kwargs={'pk': self.devicerole1.pk}) url = reverse('dcim-api:devicerole-detail', kwargs={'pk': self.devicerole1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(DeviceRole.objects.count(), 2)
class PlatformTest(APITestCase): class PlatformTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -1181,7 +1182,7 @@ class PlatformTest(APITestCase):
url = reverse('dcim-api:platform-list') url = reverse('dcim-api:platform-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Platform.objects.count(), 4)
platform4 = Platform.objects.get(pk=response.data['id']) platform4 = Platform.objects.get(pk=response.data['id'])
self.assertEqual(platform4.name, data['name']) self.assertEqual(platform4.name, data['name'])
@ -1197,7 +1198,7 @@ class PlatformTest(APITestCase):
url = reverse('dcim-api:platform-detail', kwargs={'pk': self.platform1.pk}) url = reverse('dcim-api:platform-detail', kwargs={'pk': self.platform1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Platform.objects.count(), 3)
platform1 = Platform.objects.get(pk=response.data['id']) platform1 = Platform.objects.get(pk=response.data['id'])
self.assertEqual(platform1.name, data['name']) self.assertEqual(platform1.name, data['name'])
@ -1208,11 +1209,11 @@ class PlatformTest(APITestCase):
url = reverse('dcim-api:platform-detail', kwargs={'pk': self.platform1.pk}) url = reverse('dcim-api:platform-detail', kwargs={'pk': self.platform1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Platform.objects.count(), 2)
class DeviceTest(APITestCase): class DeviceTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -1271,7 +1272,7 @@ class DeviceTest(APITestCase):
url = reverse('dcim-api:device-list') url = reverse('dcim-api:device-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Device.objects.count(), 4)
device4 = Device.objects.get(pk=response.data['id']) device4 = Device.objects.get(pk=response.data['id'])
self.assertEqual(device4.device_type_id, data['device_type']) 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}) url = reverse('dcim-api:device-detail', kwargs={'pk': self.device1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Device.objects.count(), 3)
device1 = Device.objects.get(pk=response.data['id']) device1 = Device.objects.get(pk=response.data['id'])
self.assertEqual(device1.device_type_id, data['device_type']) 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}) url = reverse('dcim-api:device-detail', kwargs={'pk': self.device1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Device.objects.count(), 2)
class ConsolePortTest(APITestCase): class ConsolePortTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -1355,7 +1356,7 @@ class ConsolePortTest(APITestCase):
url = reverse('dcim-api:consoleport-list') url = reverse('dcim-api:consoleport-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(ConsolePort.objects.count(), 4)
consoleport4 = ConsolePort.objects.get(pk=response.data['id']) consoleport4 = ConsolePort.objects.get(pk=response.data['id'])
self.assertEqual(consoleport4.device_id, data['device']) 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}) url = reverse('dcim-api:consoleport-detail', kwargs={'pk': self.consoleport1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(ConsolePort.objects.count(), 3)
consoleport1 = ConsolePort.objects.get(pk=response.data['id']) consoleport1 = ConsolePort.objects.get(pk=response.data['id'])
self.assertEqual(consoleport1.name, data['name']) self.assertEqual(consoleport1.name, data['name'])
@ -1385,11 +1386,11 @@ class ConsolePortTest(APITestCase):
url = reverse('dcim-api:consoleport-detail', kwargs={'pk': self.consoleport1.pk}) url = reverse('dcim-api:consoleport-detail', kwargs={'pk': self.consoleport1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(ConsolePort.objects.count(), 2)
class ConsoleServerPortTest(APITestCase): class ConsoleServerPortTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -1436,7 +1437,7 @@ class ConsoleServerPortTest(APITestCase):
url = reverse('dcim-api:consoleserverport-list') url = reverse('dcim-api:consoleserverport-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(ConsoleServerPort.objects.count(), 4)
consoleserverport4 = ConsoleServerPort.objects.get(pk=response.data['id']) consoleserverport4 = ConsoleServerPort.objects.get(pk=response.data['id'])
self.assertEqual(consoleserverport4.device_id, data['device']) 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}) url = reverse('dcim-api:consoleserverport-detail', kwargs={'pk': self.consoleserverport1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(ConsoleServerPort.objects.count(), 3)
consoleserverport1 = ConsoleServerPort.objects.get(pk=response.data['id']) consoleserverport1 = ConsoleServerPort.objects.get(pk=response.data['id'])
self.assertEqual(consoleserverport1.name, data['name']) self.assertEqual(consoleserverport1.name, data['name'])
@ -1462,11 +1463,11 @@ class ConsoleServerPortTest(APITestCase):
url = reverse('dcim-api:consoleserverport-detail', kwargs={'pk': self.consoleserverport1.pk}) url = reverse('dcim-api:consoleserverport-detail', kwargs={'pk': self.consoleserverport1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(ConsoleServerPort.objects.count(), 2)
class PowerPortTest(APITestCase): class PowerPortTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -1513,7 +1514,7 @@ class PowerPortTest(APITestCase):
url = reverse('dcim-api:powerport-list') url = reverse('dcim-api:powerport-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(PowerPort.objects.count(), 4)
powerport4 = PowerPort.objects.get(pk=response.data['id']) powerport4 = PowerPort.objects.get(pk=response.data['id'])
self.assertEqual(powerport4.device_id, data['device']) 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}) url = reverse('dcim-api:powerport-detail', kwargs={'pk': self.powerport1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(PowerPort.objects.count(), 3)
powerport1 = PowerPort.objects.get(pk=response.data['id']) powerport1 = PowerPort.objects.get(pk=response.data['id'])
self.assertEqual(powerport1.name, data['name']) self.assertEqual(powerport1.name, data['name'])
@ -1543,11 +1544,11 @@ class PowerPortTest(APITestCase):
url = reverse('dcim-api:powerport-detail', kwargs={'pk': self.powerport1.pk}) url = reverse('dcim-api:powerport-detail', kwargs={'pk': self.powerport1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(PowerPort.objects.count(), 2)
class PowerOutletTest(APITestCase): class PowerOutletTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -1594,7 +1595,7 @@ class PowerOutletTest(APITestCase):
url = reverse('dcim-api:poweroutlet-list') url = reverse('dcim-api:poweroutlet-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(PowerOutlet.objects.count(), 4)
poweroutlet4 = PowerOutlet.objects.get(pk=response.data['id']) poweroutlet4 = PowerOutlet.objects.get(pk=response.data['id'])
self.assertEqual(poweroutlet4.device_id, data['device']) 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}) url = reverse('dcim-api:poweroutlet-detail', kwargs={'pk': self.poweroutlet1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(PowerOutlet.objects.count(), 3)
poweroutlet1 = PowerOutlet.objects.get(pk=response.data['id']) poweroutlet1 = PowerOutlet.objects.get(pk=response.data['id'])
self.assertEqual(poweroutlet1.name, data['name']) self.assertEqual(poweroutlet1.name, data['name'])
@ -1620,11 +1621,11 @@ class PowerOutletTest(APITestCase):
url = reverse('dcim-api:poweroutlet-detail', kwargs={'pk': self.poweroutlet1.pk}) url = reverse('dcim-api:poweroutlet-detail', kwargs={'pk': self.poweroutlet1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(PowerOutlet.objects.count(), 2)
class InterfaceTest(APITestCase): class InterfaceTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -1671,7 +1672,7 @@ class InterfaceTest(APITestCase):
url = reverse('dcim-api:interface-list') url = reverse('dcim-api:interface-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Interface.objects.count(), 4)
interface4 = Interface.objects.get(pk=response.data['id']) interface4 = Interface.objects.get(pk=response.data['id'])
self.assertEqual(interface4.device_id, data['device']) 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}) url = reverse('dcim-api:interface-detail', kwargs={'pk': self.interface1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Interface.objects.count(), 4)
interface1 = Interface.objects.get(pk=response.data['id']) interface1 = Interface.objects.get(pk=response.data['id'])
self.assertEqual(interface1.name, data['name']) self.assertEqual(interface1.name, data['name'])
@ -1703,11 +1704,11 @@ class InterfaceTest(APITestCase):
url = reverse('dcim-api:interface-detail', kwargs={'pk': self.interface1.pk}) url = reverse('dcim-api:interface-detail', kwargs={'pk': self.interface1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Interface.objects.count(), 2)
class DeviceBayTest(APITestCase): class DeviceBayTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -1763,7 +1764,7 @@ class DeviceBayTest(APITestCase):
url = reverse('dcim-api:devicebay-list') url = reverse('dcim-api:devicebay-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(DeviceBay.objects.count(), 4)
devicebay4 = DeviceBay.objects.get(pk=response.data['id']) devicebay4 = DeviceBay.objects.get(pk=response.data['id'])
self.assertEqual(devicebay4.device_id, data['device']) 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}) url = reverse('dcim-api:devicebay-detail', kwargs={'pk': self.devicebay1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(DeviceBay.objects.count(), 3)
devicebay1 = DeviceBay.objects.get(pk=response.data['id']) devicebay1 = DeviceBay.objects.get(pk=response.data['id'])
self.assertEqual(devicebay1.name, data['name']) self.assertEqual(devicebay1.name, data['name'])
@ -1792,11 +1793,11 @@ class DeviceBayTest(APITestCase):
url = reverse('dcim-api:devicebay-detail', kwargs={'pk': self.devicebay1.pk}) url = reverse('dcim-api:devicebay-detail', kwargs={'pk': self.devicebay1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(DeviceBay.objects.count(), 2)
class ModuleTest(APITestCase): class ModuleTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -1845,7 +1846,7 @@ class ModuleTest(APITestCase):
url = reverse('dcim-api:module-list') url = reverse('dcim-api:module-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Module.objects.count(), 4)
module4 = Module.objects.get(pk=response.data['id']) module4 = Module.objects.get(pk=response.data['id'])
self.assertEqual(module4.device_id, data['device']) 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}) url = reverse('dcim-api:module-detail', kwargs={'pk': self.module1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Module.objects.count(), 3)
module1 = Module.objects.get(pk=response.data['id']) module1 = Module.objects.get(pk=response.data['id'])
self.assertEqual(module1.device_id, data['device']) 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}) url = reverse('dcim-api:module-detail', kwargs={'pk': self.module1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Module.objects.count(), 2)
class InterfaceConnectionTest(APITestCase): class InterfaceConnectionTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -1944,7 +1945,7 @@ class InterfaceConnectionTest(APITestCase):
url = reverse('dcim-api:interfaceconnection-list') url = reverse('dcim-api:interfaceconnection-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(InterfaceConnection.objects.count(), 4)
interfaceconnection4 = InterfaceConnection.objects.get(pk=response.data['id']) interfaceconnection4 = InterfaceConnection.objects.get(pk=response.data['id'])
self.assertEqual(interfaceconnection4.interface_a_id, data['interface_a']) 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}) url = reverse('dcim-api:interfaceconnection-detail', kwargs={'pk': self.interfaceconnection1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(InterfaceConnection.objects.count(), 3)
interfaceconnection1 = InterfaceConnection.objects.get(pk=response.data['id']) interfaceconnection1 = InterfaceConnection.objects.get(pk=response.data['id'])
self.assertEqual(interfaceconnection1.interface_a_id, data['interface_a']) 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}) url = reverse('dcim-api:interfaceconnection-detail', kwargs={'pk': self.interfaceconnection1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(InterfaceConnection.objects.count(), 2)

View File

@ -11,9 +11,10 @@ from ipam.models import (
Aggregate, IPAddress, IP_PROTOCOL_TCP, IP_PROTOCOL_UDP, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF, Aggregate, IPAddress, IP_PROTOCOL_TCP, IP_PROTOCOL_UDP, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF,
) )
from users.models import Token from users.models import Token
from utilities.tests import HttpStatusMixin
class VRFTest(APITestCase): class VRFTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -49,7 +50,7 @@ class VRFTest(APITestCase):
url = reverse('ipam-api:vrf-list') url = reverse('ipam-api:vrf-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(VRF.objects.count(), 4)
vrf4 = VRF.objects.get(pk=response.data['id']) vrf4 = VRF.objects.get(pk=response.data['id'])
self.assertEqual(vrf4.name, data['name']) self.assertEqual(vrf4.name, data['name'])
@ -65,7 +66,7 @@ class VRFTest(APITestCase):
url = reverse('ipam-api:vrf-detail', kwargs={'pk': self.vrf1.pk}) url = reverse('ipam-api:vrf-detail', kwargs={'pk': self.vrf1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(VRF.objects.count(), 3)
vrf1 = VRF.objects.get(pk=response.data['id']) vrf1 = VRF.objects.get(pk=response.data['id'])
self.assertEqual(vrf1.name, data['name']) self.assertEqual(vrf1.name, data['name'])
@ -76,11 +77,11 @@ class VRFTest(APITestCase):
url = reverse('ipam-api:vrf-detail', kwargs={'pk': self.vrf1.pk}) url = reverse('ipam-api:vrf-detail', kwargs={'pk': self.vrf1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(VRF.objects.count(), 2)
class RIRTest(APITestCase): class RIRTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -116,7 +117,7 @@ class RIRTest(APITestCase):
url = reverse('ipam-api:rir-list') url = reverse('ipam-api:rir-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(RIR.objects.count(), 4)
rir4 = RIR.objects.get(pk=response.data['id']) rir4 = RIR.objects.get(pk=response.data['id'])
self.assertEqual(rir4.name, data['name']) self.assertEqual(rir4.name, data['name'])
@ -132,7 +133,7 @@ class RIRTest(APITestCase):
url = reverse('ipam-api:rir-detail', kwargs={'pk': self.rir1.pk}) url = reverse('ipam-api:rir-detail', kwargs={'pk': self.rir1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(RIR.objects.count(), 3)
rir1 = RIR.objects.get(pk=response.data['id']) rir1 = RIR.objects.get(pk=response.data['id'])
self.assertEqual(rir1.name, data['name']) self.assertEqual(rir1.name, data['name'])
@ -143,11 +144,11 @@ class RIRTest(APITestCase):
url = reverse('ipam-api:rir-detail', kwargs={'pk': self.rir1.pk}) url = reverse('ipam-api:rir-detail', kwargs={'pk': self.rir1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(RIR.objects.count(), 2)
class AggregateTest(APITestCase): class AggregateTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -185,7 +186,7 @@ class AggregateTest(APITestCase):
url = reverse('ipam-api:aggregate-list') url = reverse('ipam-api:aggregate-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Aggregate.objects.count(), 4)
aggregate4 = Aggregate.objects.get(pk=response.data['id']) aggregate4 = Aggregate.objects.get(pk=response.data['id'])
self.assertEqual(str(aggregate4.prefix), data['prefix']) 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}) url = reverse('ipam-api:aggregate-detail', kwargs={'pk': self.aggregate1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Aggregate.objects.count(), 3)
aggregate1 = Aggregate.objects.get(pk=response.data['id']) aggregate1 = Aggregate.objects.get(pk=response.data['id'])
self.assertEqual(str(aggregate1.prefix), data['prefix']) 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}) url = reverse('ipam-api:aggregate-detail', kwargs={'pk': self.aggregate1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Aggregate.objects.count(), 2)
class RoleTest(APITestCase): class RoleTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -252,7 +253,7 @@ class RoleTest(APITestCase):
url = reverse('ipam-api:role-list') url = reverse('ipam-api:role-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Role.objects.count(), 4)
role4 = Role.objects.get(pk=response.data['id']) role4 = Role.objects.get(pk=response.data['id'])
self.assertEqual(role4.name, data['name']) self.assertEqual(role4.name, data['name'])
@ -268,7 +269,7 @@ class RoleTest(APITestCase):
url = reverse('ipam-api:role-detail', kwargs={'pk': self.role1.pk}) url = reverse('ipam-api:role-detail', kwargs={'pk': self.role1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Role.objects.count(), 3)
role1 = Role.objects.get(pk=response.data['id']) role1 = Role.objects.get(pk=response.data['id'])
self.assertEqual(role1.name, data['name']) self.assertEqual(role1.name, data['name'])
@ -279,11 +280,11 @@ class RoleTest(APITestCase):
url = reverse('ipam-api:role-detail', kwargs={'pk': self.role1.pk}) url = reverse('ipam-api:role-detail', kwargs={'pk': self.role1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Role.objects.count(), 2)
class PrefixTest(APITestCase): class PrefixTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -326,7 +327,7 @@ class PrefixTest(APITestCase):
url = reverse('ipam-api:prefix-list') url = reverse('ipam-api:prefix-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Prefix.objects.count(), 4)
prefix4 = Prefix.objects.get(pk=response.data['id']) prefix4 = Prefix.objects.get(pk=response.data['id'])
self.assertEqual(str(prefix4.prefix), data['prefix']) 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}) url = reverse('ipam-api:prefix-detail', kwargs={'pk': self.prefix1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Prefix.objects.count(), 3)
prefix1 = Prefix.objects.get(pk=response.data['id']) prefix1 = Prefix.objects.get(pk=response.data['id'])
self.assertEqual(str(prefix1.prefix), data['prefix']) 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}) url = reverse('ipam-api:prefix-detail', kwargs={'pk': self.prefix1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Prefix.objects.count(), 2)
class IPAddressTest(APITestCase): class IPAddressTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -403,7 +404,7 @@ class IPAddressTest(APITestCase):
url = reverse('ipam-api:ipaddress-list') url = reverse('ipam-api:ipaddress-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(IPAddress.objects.count(), 4)
ipaddress4 = IPAddress.objects.get(pk=response.data['id']) ipaddress4 = IPAddress.objects.get(pk=response.data['id'])
self.assertEqual(str(ipaddress4.address), data['address']) 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}) url = reverse('ipam-api:ipaddress-detail', kwargs={'pk': self.ipaddress1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(IPAddress.objects.count(), 3)
ipaddress1 = IPAddress.objects.get(pk=response.data['id']) ipaddress1 = IPAddress.objects.get(pk=response.data['id'])
self.assertEqual(str(ipaddress1.address), data['address']) 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}) url = reverse('ipam-api:ipaddress-detail', kwargs={'pk': self.ipaddress1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(IPAddress.objects.count(), 2)
class VLANGroupTest(APITestCase): class VLANGroupTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -470,7 +471,7 @@ class VLANGroupTest(APITestCase):
url = reverse('ipam-api:vlangroup-list') url = reverse('ipam-api:vlangroup-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(VLANGroup.objects.count(), 4)
vlangroup4 = VLANGroup.objects.get(pk=response.data['id']) vlangroup4 = VLANGroup.objects.get(pk=response.data['id'])
self.assertEqual(vlangroup4.name, data['name']) self.assertEqual(vlangroup4.name, data['name'])
@ -486,7 +487,7 @@ class VLANGroupTest(APITestCase):
url = reverse('ipam-api:vlangroup-detail', kwargs={'pk': self.vlangroup1.pk}) url = reverse('ipam-api:vlangroup-detail', kwargs={'pk': self.vlangroup1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(VLANGroup.objects.count(), 3)
vlangroup1 = VLANGroup.objects.get(pk=response.data['id']) vlangroup1 = VLANGroup.objects.get(pk=response.data['id'])
self.assertEqual(vlangroup1.name, data['name']) self.assertEqual(vlangroup1.name, data['name'])
@ -497,11 +498,11 @@ class VLANGroupTest(APITestCase):
url = reverse('ipam-api:vlangroup-detail', kwargs={'pk': self.vlangroup1.pk}) url = reverse('ipam-api:vlangroup-detail', kwargs={'pk': self.vlangroup1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(VLANGroup.objects.count(), 2)
class VLANTest(APITestCase): class VLANTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -537,7 +538,7 @@ class VLANTest(APITestCase):
url = reverse('ipam-api:vlan-list') url = reverse('ipam-api:vlan-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(VLAN.objects.count(), 4)
vlan4 = VLAN.objects.get(pk=response.data['id']) vlan4 = VLAN.objects.get(pk=response.data['id'])
self.assertEqual(vlan4.vid, data['vid']) self.assertEqual(vlan4.vid, data['vid'])
@ -553,7 +554,7 @@ class VLANTest(APITestCase):
url = reverse('ipam-api:vlan-detail', kwargs={'pk': self.vlan1.pk}) url = reverse('ipam-api:vlan-detail', kwargs={'pk': self.vlan1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(VLAN.objects.count(), 3)
vlan1 = VLAN.objects.get(pk=response.data['id']) vlan1 = VLAN.objects.get(pk=response.data['id'])
self.assertEqual(vlan1.vid, data['vid']) self.assertEqual(vlan1.vid, data['vid'])
@ -564,11 +565,11 @@ class VLANTest(APITestCase):
url = reverse('ipam-api:vlan-detail', kwargs={'pk': self.vlan1.pk}) url = reverse('ipam-api:vlan-detail', kwargs={'pk': self.vlan1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(VLAN.objects.count(), 2)
class ServiceTest(APITestCase): class ServiceTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -622,7 +623,7 @@ class ServiceTest(APITestCase):
url = reverse('ipam-api:service-list') url = reverse('ipam-api:service-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Service.objects.count(), 4)
service4 = Service.objects.get(pk=response.data['id']) service4 = Service.objects.get(pk=response.data['id'])
self.assertEqual(service4.device_id, data['device']) 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}) url = reverse('ipam-api:service-detail', kwargs={'pk': self.service1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Service.objects.count(), 3)
service1 = Service.objects.get(pk=response.data['id']) service1 = Service.objects.get(pk=response.data['id'])
self.assertEqual(service1.device_id, data['device']) 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}) url = reverse('ipam-api:service-detail', kwargs={'pk': self.service1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Service.objects.count(), 2)

View File

@ -8,6 +8,7 @@ from django.urls import reverse
from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Site from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Site
from secrets.models import Secret, SecretRole, SessionKey, UserKey from secrets.models import Secret, SecretRole, SessionKey, UserKey
from users.models import Token from users.models import Token
from utilities.tests import HttpStatusMixin
# Dummy RSA key pair for testing use only # Dummy RSA key pair for testing use only
@ -50,7 +51,7 @@ qQIDAQAB
-----END PUBLIC KEY-----""" -----END PUBLIC KEY-----"""
class SecretRoleTest(APITestCase): class SecretRoleTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -86,7 +87,7 @@ class SecretRoleTest(APITestCase):
url = reverse('secrets-api:secretrole-list') url = reverse('secrets-api:secretrole-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(SecretRole.objects.count(), 4)
secretrole4 = SecretRole.objects.get(pk=response.data['id']) secretrole4 = SecretRole.objects.get(pk=response.data['id'])
self.assertEqual(secretrole4.name, data['name']) self.assertEqual(secretrole4.name, data['name'])
@ -102,7 +103,7 @@ class SecretRoleTest(APITestCase):
url = reverse('secrets-api:secretrole-detail', kwargs={'pk': self.secretrole1.pk}) url = reverse('secrets-api:secretrole-detail', kwargs={'pk': self.secretrole1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(SecretRole.objects.count(), 3)
secretrole1 = SecretRole.objects.get(pk=response.data['id']) secretrole1 = SecretRole.objects.get(pk=response.data['id'])
self.assertEqual(secretrole1.name, data['name']) self.assertEqual(secretrole1.name, data['name'])
@ -113,11 +114,11 @@ class SecretRoleTest(APITestCase):
url = reverse('secrets-api:secretrole-detail', kwargs={'pk': self.secretrole1.pk}) url = reverse('secrets-api:secretrole-detail', kwargs={'pk': self.secretrole1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(SecretRole.objects.count(), 2)
class SecretTest(APITestCase): class SecretTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -191,7 +192,7 @@ class SecretTest(APITestCase):
url = reverse('secrets-api:secret-list') url = reverse('secrets-api:secret-list')
response = self.client.post(url, data, **self.header) 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(response.data['plaintext'], data['plaintext'])
self.assertEqual(Secret.objects.count(), 4) self.assertEqual(Secret.objects.count(), 4)
secret4 = Secret.objects.get(pk=response.data['id']) 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}) url = reverse('secrets-api:secret-detail', kwargs={'pk': self.secret1.pk})
response = self.client.put(url, data, **self.header) 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(response.data['plaintext'], data['plaintext'])
self.assertEqual(Secret.objects.count(), 3) self.assertEqual(Secret.objects.count(), 3)
secret1 = Secret.objects.get(pk=response.data['id']) 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}) url = reverse('secrets-api:secret-detail', kwargs={'pk': self.secret1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Secret.objects.count(), 2)

View File

@ -6,9 +6,10 @@ from django.urls import reverse
from tenancy.models import Tenant, TenantGroup from tenancy.models import Tenant, TenantGroup
from users.models import Token from users.models import Token
from utilities.tests import HttpStatusMixin
class TenantGroupTest(APITestCase): class TenantGroupTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -44,7 +45,7 @@ class TenantGroupTest(APITestCase):
url = reverse('tenancy-api:tenantgroup-list') url = reverse('tenancy-api:tenantgroup-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(TenantGroup.objects.count(), 4)
tenantgroup4 = TenantGroup.objects.get(pk=response.data['id']) tenantgroup4 = TenantGroup.objects.get(pk=response.data['id'])
self.assertEqual(tenantgroup4.name, data['name']) self.assertEqual(tenantgroup4.name, data['name'])
@ -60,7 +61,7 @@ class TenantGroupTest(APITestCase):
url = reverse('tenancy-api:tenantgroup-detail', kwargs={'pk': self.tenantgroup1.pk}) url = reverse('tenancy-api:tenantgroup-detail', kwargs={'pk': self.tenantgroup1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(TenantGroup.objects.count(), 3)
tenantgroup1 = TenantGroup.objects.get(pk=response.data['id']) tenantgroup1 = TenantGroup.objects.get(pk=response.data['id'])
self.assertEqual(tenantgroup1.name, data['name']) self.assertEqual(tenantgroup1.name, data['name'])
@ -71,11 +72,11 @@ class TenantGroupTest(APITestCase):
url = reverse('tenancy-api:tenantgroup-detail', kwargs={'pk': self.tenantgroup1.pk}) url = reverse('tenancy-api:tenantgroup-detail', kwargs={'pk': self.tenantgroup1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(TenantGroup.objects.count(), 2)
class TenantTest(APITestCase): class TenantTest(HttpStatusMixin, APITestCase):
def setUp(self): def setUp(self):
@ -114,7 +115,7 @@ class TenantTest(APITestCase):
url = reverse('tenancy-api:tenant-list') url = reverse('tenancy-api:tenant-list')
response = self.client.post(url, data, **self.header) 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) self.assertEqual(Tenant.objects.count(), 4)
tenant4 = Tenant.objects.get(pk=response.data['id']) tenant4 = Tenant.objects.get(pk=response.data['id'])
self.assertEqual(tenant4.name, data['name']) self.assertEqual(tenant4.name, data['name'])
@ -132,7 +133,7 @@ class TenantTest(APITestCase):
url = reverse('tenancy-api:tenant-detail', kwargs={'pk': self.tenant1.pk}) url = reverse('tenancy-api:tenant-detail', kwargs={'pk': self.tenant1.pk})
response = self.client.put(url, data, **self.header) 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) self.assertEqual(Tenant.objects.count(), 3)
tenant1 = Tenant.objects.get(pk=response.data['id']) tenant1 = Tenant.objects.get(pk=response.data['id'])
self.assertEqual(tenant1.name, data['name']) self.assertEqual(tenant1.name, data['name'])
@ -144,5 +145,5 @@ class TenantTest(APITestCase):
url = reverse('tenancy-api:tenant-detail', kwargs={'pk': self.tenant1.pk}) url = reverse('tenancy-api:tenant-detail', kwargs={'pk': self.tenant1.pk})
response = self.client.delete(url, **self.header) 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) self.assertEqual(Tenant.objects.count(), 2)

10
netbox/utilities/tests.py Normal file
View File

@ -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
))