diff --git a/netbox/circuits/tests/test_api.py b/netbox/circuits/tests/test_api.py index 3c1337ef2..a67dbc4ab 100644 --- a/netbox/circuits/tests/test_api.py +++ b/netbox/circuits/tests/test_api.py @@ -1,26 +1,21 @@ from __future__ import unicode_literals -from django.contrib.auth.models import User from django.urls import reverse from rest_framework import status -from rest_framework.test import APITestCase from circuits.constants import CIRCUIT_STATUS_ACTIVE, TERM_SIDE_A, TERM_SIDE_Z from circuits.models import Circuit, CircuitTermination, CircuitType, Provider from dcim.models import Site from extras.constants import GRAPH_TYPE_PROVIDER from extras.models import Graph -from users.models import Token -from utilities.testing import HttpStatusMixin +from utilities.testing import APITestCase -class ProviderTest(HttpStatusMixin, APITestCase): +class ProviderTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ProviderTest, self).setUp() self.provider1 = Provider.objects.create(name='Test Provider 1', slug='test-provider-1') self.provider2 = Provider.objects.create(name='Test Provider 2', slug='test-provider-2') @@ -128,13 +123,11 @@ class ProviderTest(HttpStatusMixin, APITestCase): self.assertEqual(Provider.objects.count(), 2) -class CircuitTypeTest(HttpStatusMixin, APITestCase): +class CircuitTypeTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(CircuitTypeTest, self).setUp() self.circuittype1 = CircuitType.objects.create(name='Test Circuit Type 1', slug='test-circuit-type-1') self.circuittype2 = CircuitType.objects.create(name='Test Circuit Type 2', slug='test-circuit-type-2') @@ -195,13 +188,11 @@ class CircuitTypeTest(HttpStatusMixin, APITestCase): self.assertEqual(CircuitType.objects.count(), 2) -class CircuitTest(HttpStatusMixin, APITestCase): +class CircuitTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(CircuitTest, self).setUp() self.provider1 = Provider.objects.create(name='Test Provider 1', slug='test-provider-1') self.provider2 = Provider.objects.create(name='Test Provider 2', slug='test-provider-2') @@ -303,13 +294,11 @@ class CircuitTest(HttpStatusMixin, APITestCase): self.assertEqual(Circuit.objects.count(), 2) -class CircuitTerminationTest(HttpStatusMixin, APITestCase): +class CircuitTerminationTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(CircuitTerminationTest, self).setUp() provider = Provider.objects.create(name='Test Provider', slug='test-provider') circuittype = CircuitType.objects.create(name='Test Circuit Type', slug='test-circuit-type') diff --git a/netbox/dcim/tests/test_api.py b/netbox/dcim/tests/test_api.py index 1d9ba74ba..6498e7f39 100644 --- a/netbox/dcim/tests/test_api.py +++ b/netbox/dcim/tests/test_api.py @@ -1,9 +1,7 @@ from __future__ import unicode_literals -from django.contrib.auth.models import User from django.urls import reverse from rest_framework import status -from rest_framework.test import APITestCase from dcim.constants import ( IFACE_FF_1GE_FIXED, IFACE_FF_LAG, IFACE_MODE_TAGGED, SITE_STATUS_ACTIVE, SUBDEVICE_ROLE_CHILD, @@ -17,17 +15,14 @@ from dcim.models import ( ) from ipam.models import VLAN from extras.models import Graph, GRAPH_TYPE_INTERFACE, GRAPH_TYPE_SITE -from users.models import Token -from utilities.testing import HttpStatusMixin +from utilities.testing import APITestCase -class RegionTest(HttpStatusMixin, APITestCase): +class RegionTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(RegionTest, self).setUp() self.region1 = Region.objects.create(name='Test Region 1', slug='test-region-1') self.region2 = Region.objects.create(name='Test Region 2', slug='test-region-2') @@ -114,13 +109,11 @@ class RegionTest(HttpStatusMixin, APITestCase): self.assertEqual(Region.objects.count(), 2) -class SiteTest(HttpStatusMixin, APITestCase): +class SiteTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(SiteTest, self).setUp() self.region1 = Region.objects.create(name='Test Region 1', slug='test-region-1') self.region2 = Region.objects.create(name='Test Region 2', slug='test-region-2') @@ -241,13 +234,11 @@ class SiteTest(HttpStatusMixin, APITestCase): self.assertEqual(Site.objects.count(), 2) -class RackGroupTest(HttpStatusMixin, APITestCase): +class RackGroupTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(RackGroupTest, self).setUp() self.site1 = Site.objects.create(name='Test Site 1', slug='test-site-1') self.site2 = Site.objects.create(name='Test Site 2', slug='test-site-2') @@ -343,13 +334,11 @@ class RackGroupTest(HttpStatusMixin, APITestCase): self.assertEqual(RackGroup.objects.count(), 2) -class RackRoleTest(HttpStatusMixin, APITestCase): +class RackRoleTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(RackRoleTest, self).setUp() self.rackrole1 = RackRole.objects.create(name='Test Rack Role 1', slug='test-rack-role-1', color='ff0000') self.rackrole2 = RackRole.objects.create(name='Test Rack Role 2', slug='test-rack-role-2', color='00ff00') @@ -443,13 +432,11 @@ class RackRoleTest(HttpStatusMixin, APITestCase): self.assertEqual(RackRole.objects.count(), 2) -class RackTest(HttpStatusMixin, APITestCase): +class RackTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(RackTest, self).setUp() self.site1 = Site.objects.create(name='Test Site 1', slug='test-site-1') self.site2 = Site.objects.create(name='Test Site 2', slug='test-site-2') @@ -569,25 +556,22 @@ class RackTest(HttpStatusMixin, APITestCase): self.assertEqual(Rack.objects.count(), 2) -class RackReservationTest(HttpStatusMixin, APITestCase): +class RackReservationTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(RackReservationTest, self).setUp() - self.user1 = user self.site1 = Site.objects.create(name='Test Site 1', slug='test-site-1') self.rack1 = Rack.objects.create(site=self.site1, name='Test Rack 1') self.rackreservation1 = RackReservation.objects.create( - rack=self.rack1, units=[1, 2, 3], user=user, description='Reservation #1', + rack=self.rack1, units=[1, 2, 3], user=self.user, description='Reservation #1', ) self.rackreservation2 = RackReservation.objects.create( - rack=self.rack1, units=[4, 5, 6], user=user, description='Reservation #2', + rack=self.rack1, units=[4, 5, 6], user=self.user, description='Reservation #2', ) self.rackreservation3 = RackReservation.objects.create( - rack=self.rack1, units=[7, 8, 9], user=user, description='Reservation #3', + rack=self.rack1, units=[7, 8, 9], user=self.user, description='Reservation #3', ) def test_get_rackreservation(self): @@ -609,7 +593,7 @@ class RackReservationTest(HttpStatusMixin, APITestCase): data = { 'rack': self.rack1.pk, 'units': [10, 11, 12], - 'user': self.user1.pk, + 'user': self.user.pk, 'description': 'Fourth reservation', } @@ -630,19 +614,19 @@ class RackReservationTest(HttpStatusMixin, APITestCase): { 'rack': self.rack1.pk, 'units': [10, 11, 12], - 'user': self.user1.pk, + 'user': self.user.pk, 'description': 'Reservation #4', }, { 'rack': self.rack1.pk, 'units': [13, 14, 15], - 'user': self.user1.pk, + 'user': self.user.pk, 'description': 'Reservation #5', }, { 'rack': self.rack1.pk, 'units': [16, 17, 18], - 'user': self.user1.pk, + 'user': self.user.pk, 'description': 'Reservation #6', }, ] @@ -661,7 +645,7 @@ class RackReservationTest(HttpStatusMixin, APITestCase): data = { 'rack': self.rack1.pk, 'units': [10, 11, 12], - 'user': self.user1.pk, + 'user': self.user.pk, 'description': 'Modified reservation', } @@ -683,13 +667,11 @@ class RackReservationTest(HttpStatusMixin, APITestCase): self.assertEqual(RackReservation.objects.count(), 2) -class ManufacturerTest(HttpStatusMixin, APITestCase): +class ManufacturerTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ManufacturerTest, self).setUp() self.manufacturer1 = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') self.manufacturer2 = Manufacturer.objects.create(name='Test Manufacturer 2', slug='test-manufacturer-2') @@ -776,13 +758,11 @@ class ManufacturerTest(HttpStatusMixin, APITestCase): self.assertEqual(Manufacturer.objects.count(), 2) -class DeviceTypeTest(HttpStatusMixin, APITestCase): +class DeviceTypeTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(DeviceTypeTest, self).setUp() self.manufacturer1 = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') self.manufacturer2 = Manufacturer.objects.create(name='Test Manufacturer 2', slug='test-manufacturer-2') @@ -884,13 +864,11 @@ class DeviceTypeTest(HttpStatusMixin, APITestCase): self.assertEqual(DeviceType.objects.count(), 2) -class ConsolePortTemplateTest(HttpStatusMixin, APITestCase): +class ConsolePortTemplateTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ConsolePortTemplateTest, self).setUp() self.manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') self.devicetype = DeviceType.objects.create( @@ -986,13 +964,11 @@ class ConsolePortTemplateTest(HttpStatusMixin, APITestCase): self.assertEqual(ConsolePortTemplate.objects.count(), 2) -class ConsoleServerPortTemplateTest(HttpStatusMixin, APITestCase): +class ConsoleServerPortTemplateTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ConsoleServerPortTemplateTest, self).setUp() self.manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') self.devicetype = DeviceType.objects.create( @@ -1088,13 +1064,11 @@ class ConsoleServerPortTemplateTest(HttpStatusMixin, APITestCase): self.assertEqual(ConsoleServerPortTemplate.objects.count(), 2) -class PowerPortTemplateTest(HttpStatusMixin, APITestCase): +class PowerPortTemplateTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(PowerPortTemplateTest, self).setUp() self.manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') self.devicetype = DeviceType.objects.create( @@ -1190,13 +1164,11 @@ class PowerPortTemplateTest(HttpStatusMixin, APITestCase): self.assertEqual(PowerPortTemplate.objects.count(), 2) -class PowerOutletTemplateTest(HttpStatusMixin, APITestCase): +class PowerOutletTemplateTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(PowerOutletTemplateTest, self).setUp() self.manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') self.devicetype = DeviceType.objects.create( @@ -1292,13 +1264,11 @@ class PowerOutletTemplateTest(HttpStatusMixin, APITestCase): self.assertEqual(PowerOutletTemplate.objects.count(), 2) -class InterfaceTemplateTest(HttpStatusMixin, APITestCase): +class InterfaceTemplateTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(InterfaceTemplateTest, self).setUp() self.manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') self.devicetype = DeviceType.objects.create( @@ -1394,13 +1364,11 @@ class InterfaceTemplateTest(HttpStatusMixin, APITestCase): self.assertEqual(InterfaceTemplate.objects.count(), 2) -class DeviceBayTemplateTest(HttpStatusMixin, APITestCase): +class DeviceBayTemplateTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(DeviceBayTemplateTest, self).setUp() self.manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') self.devicetype = DeviceType.objects.create( @@ -1496,13 +1464,11 @@ class DeviceBayTemplateTest(HttpStatusMixin, APITestCase): self.assertEqual(DeviceBayTemplate.objects.count(), 2) -class DeviceRoleTest(HttpStatusMixin, APITestCase): +class DeviceRoleTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(DeviceRoleTest, self).setUp() self.devicerole1 = DeviceRole.objects.create( name='Test Device Role 1', slug='test-device-role-1', color='ff0000' @@ -1602,13 +1568,11 @@ class DeviceRoleTest(HttpStatusMixin, APITestCase): self.assertEqual(DeviceRole.objects.count(), 2) -class PlatformTest(HttpStatusMixin, APITestCase): +class PlatformTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(PlatformTest, self).setUp() self.platform1 = Platform.objects.create(name='Test Platform 1', slug='test-platform-1') self.platform2 = Platform.objects.create(name='Test Platform 2', slug='test-platform-2') @@ -1695,13 +1659,11 @@ class PlatformTest(HttpStatusMixin, APITestCase): self.assertEqual(Platform.objects.count(), 2) -class DeviceTest(HttpStatusMixin, APITestCase): +class DeviceTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(DeviceTest, self).setUp() self.site1 = Site.objects.create(name='Test Site 1', slug='test-site-1') self.site2 = Site.objects.create(name='Test Site 2', slug='test-site-2') @@ -1823,13 +1785,11 @@ class DeviceTest(HttpStatusMixin, APITestCase): self.assertEqual(Device.objects.count(), 2) -class ConsolePortTest(HttpStatusMixin, APITestCase): +class ConsolePortTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ConsolePortTest, self).setUp() site = Site.objects.create(name='Test Site 1', slug='test-site-1') manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') @@ -1930,13 +1890,11 @@ class ConsolePortTest(HttpStatusMixin, APITestCase): self.assertEqual(ConsolePort.objects.count(), 2) -class ConsoleServerPortTest(HttpStatusMixin, APITestCase): +class ConsoleServerPortTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ConsoleServerPortTest, self).setUp() site = Site.objects.create(name='Test Site 1', slug='test-site-1') manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') @@ -2033,13 +1991,11 @@ class ConsoleServerPortTest(HttpStatusMixin, APITestCase): self.assertEqual(ConsoleServerPort.objects.count(), 2) -class PowerPortTest(HttpStatusMixin, APITestCase): +class PowerPortTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(PowerPortTest, self).setUp() site = Site.objects.create(name='Test Site 1', slug='test-site-1') manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') @@ -2140,13 +2096,11 @@ class PowerPortTest(HttpStatusMixin, APITestCase): self.assertEqual(PowerPort.objects.count(), 2) -class PowerOutletTest(HttpStatusMixin, APITestCase): +class PowerOutletTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(PowerOutletTest, self).setUp() site = Site.objects.create(name='Test Site 1', slug='test-site-1') manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') @@ -2243,13 +2197,11 @@ class PowerOutletTest(HttpStatusMixin, APITestCase): self.assertEqual(PowerOutlet.objects.count(), 2) -class InterfaceTest(HttpStatusMixin, APITestCase): +class InterfaceTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(InterfaceTest, self).setUp() site = Site.objects.create(name='Test Site 1', slug='test-site-1') manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') @@ -2433,13 +2385,11 @@ class InterfaceTest(HttpStatusMixin, APITestCase): self.assertEqual(Interface.objects.count(), 2) -class DeviceBayTest(HttpStatusMixin, APITestCase): +class DeviceBayTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(DeviceBayTest, self).setUp() site = Site.objects.create(name='Test Site 1', slug='test-site-1') manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') @@ -2548,13 +2498,11 @@ class DeviceBayTest(HttpStatusMixin, APITestCase): self.assertEqual(DeviceBay.objects.count(), 2) -class InventoryItemTest(HttpStatusMixin, APITestCase): +class InventoryItemTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(InventoryItemTest, self).setUp() site = Site.objects.create(name='Test Site 1', slug='test-site-1') self.manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') @@ -2666,13 +2614,11 @@ class InventoryItemTest(HttpStatusMixin, APITestCase): self.assertEqual(InventoryItem.objects.count(), 2) -class ConsoleConnectionTest(HttpStatusMixin, APITestCase): +class ConsoleConnectionTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ConsoleConnectionTest, self).setUp() site = Site.objects.create(name='Test Site 1', slug='test-site-1') manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') @@ -2709,13 +2655,11 @@ class ConsoleConnectionTest(HttpStatusMixin, APITestCase): self.assertEqual(response.data['count'], 3) -class PowerConnectionTest(HttpStatusMixin, APITestCase): +class PowerConnectionTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(PowerConnectionTest, self).setUp() site = Site.objects.create(name='Test Site 1', slug='test-site-1') manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') @@ -2752,13 +2696,11 @@ class PowerConnectionTest(HttpStatusMixin, APITestCase): self.assertEqual(response.data['count'], 3) -class InterfaceConnectionTest(HttpStatusMixin, APITestCase): +class InterfaceConnectionTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(InterfaceConnectionTest, self).setUp() site = Site.objects.create(name='Test Site 1', slug='test-site-1') manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') @@ -2879,13 +2821,11 @@ class InterfaceConnectionTest(HttpStatusMixin, APITestCase): self.assertEqual(InterfaceConnection.objects.count(), 2) -class ConnectedDeviceTest(HttpStatusMixin, APITestCase): +class ConnectedDeviceTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ConnectedDeviceTest, self).setUp() self.site1 = Site.objects.create(name='Test Site 1', slug='test-site-1') self.site2 = Site.objects.create(name='Test Site 2', slug='test-site-2') @@ -2921,13 +2861,11 @@ class ConnectedDeviceTest(HttpStatusMixin, APITestCase): self.assertEqual(response.data['name'], self.device1.name) -class VirtualChassisTest(HttpStatusMixin, APITestCase): +class VirtualChassisTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(VirtualChassisTest, self).setUp() site = Site.objects.create(name='Test Site', slug='test-site') manufacturer = Manufacturer.objects.create(name='Test Manufacturer', slug='test-manufacturer') diff --git a/netbox/extras/tests/test_api.py b/netbox/extras/tests/test_api.py index 32551aff0..3d0e5d1f7 100644 --- a/netbox/extras/tests/test_api.py +++ b/netbox/extras/tests/test_api.py @@ -1,27 +1,22 @@ from __future__ import unicode_literals -from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType from django.urls import reverse from rest_framework import status -from rest_framework.test import APITestCase from taggit.models import Tag from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Platform, Region, Site from extras.constants import GRAPH_TYPE_SITE from extras.models import ConfigContext, Graph, ExportTemplate from tenancy.models import Tenant, TenantGroup -from users.models import Token -from utilities.testing import HttpStatusMixin +from utilities.testing import APITestCase -class GraphTest(HttpStatusMixin, APITestCase): +class GraphTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(GraphTest, self).setUp() self.graph1 = Graph.objects.create( type=GRAPH_TYPE_SITE, name='Test Graph 1', source='http://example.com/graphs.py?site={{ obj.name }}&foo=1' @@ -121,13 +116,11 @@ class GraphTest(HttpStatusMixin, APITestCase): self.assertEqual(Graph.objects.count(), 2) -class ExportTemplateTest(HttpStatusMixin, APITestCase): +class ExportTemplateTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ExportTemplateTest, self).setUp() self.content_type = ContentType.objects.get_for_model(Device) self.exporttemplate1 = ExportTemplate.objects.create( @@ -230,13 +223,11 @@ class ExportTemplateTest(HttpStatusMixin, APITestCase): self.assertEqual(ExportTemplate.objects.count(), 2) -class TagTest(HttpStatusMixin, APITestCase): +class TagTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(TagTest, self).setUp() self.tag1 = Tag.objects.create(name='Test Tag 1', slug='test-tag-1') self.tag2 = Tag.objects.create(name='Test Tag 2', slug='test-tag-2') @@ -323,13 +314,11 @@ class TagTest(HttpStatusMixin, APITestCase): self.assertEqual(Tag.objects.count(), 2) -class ConfigContextTest(HttpStatusMixin, APITestCase): +class ConfigContextTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ConfigContextTest, self).setUp() self.configcontext1 = ConfigContext.objects.create( name='Test Config Context 1', diff --git a/netbox/extras/tests/test_customfields.py b/netbox/extras/tests/test_customfields.py index 805ee5543..97eb69cd9 100644 --- a/netbox/extras/tests/test_customfields.py +++ b/netbox/extras/tests/test_customfields.py @@ -2,18 +2,15 @@ from __future__ import unicode_literals from datetime import date -from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType from django.test import TestCase from django.urls import reverse from rest_framework import status -from rest_framework.test import APITestCase from dcim.models import Site from extras.constants import CF_TYPE_TEXT, CF_TYPE_INTEGER, CF_TYPE_BOOLEAN, CF_TYPE_DATE, CF_TYPE_SELECT, CF_TYPE_URL from extras.models import CustomField, CustomFieldValue, CustomFieldChoice -from users.models import Token -from utilities.testing import HttpStatusMixin +from utilities.testing import APITestCase class CustomFieldTest(TestCase): @@ -102,13 +99,11 @@ class CustomFieldTest(TestCase): cf.delete() -class CustomFieldAPITest(HttpStatusMixin, APITestCase): +class CustomFieldAPITest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(CustomFieldAPITest, self).setUp() content_type = ContentType.objects.get_for_model(Site) diff --git a/netbox/extras/tests/test_tags.py b/netbox/extras/tests/test_tags.py index d80184f16..d4c0a79c6 100644 --- a/netbox/extras/tests/test_tags.py +++ b/netbox/extras/tests/test_tags.py @@ -1,25 +1,20 @@ from __future__ import unicode_literals -from django.contrib.auth.models import User from django.urls import reverse from rest_framework import status -from rest_framework.test import APITestCase from dcim.models import Site -from users.models import Token -from utilities.testing import HttpStatusMixin +from utilities.testing import APITestCase -class TaggedItemTest(HttpStatusMixin, APITestCase): +class TaggedItemTest(APITestCase): """ Test the application of Tags to and item (a Site, for example) upon creation (POST) and modification (PATCH). """ def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(TaggedItemTest, self).setUp() def test_create_tagged_item(self): diff --git a/netbox/ipam/tests/test_api.py b/netbox/ipam/tests/test_api.py index 27fa92dfd..f295bee29 100644 --- a/netbox/ipam/tests/test_api.py +++ b/netbox/ipam/tests/test_api.py @@ -1,25 +1,20 @@ from __future__ import unicode_literals -from django.contrib.auth.models import User from django.urls import reverse from netaddr import IPNetwork from rest_framework import status -from rest_framework.test import APITestCase from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Site from ipam.constants import IP_PROTOCOL_TCP, IP_PROTOCOL_UDP from ipam.models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF -from users.models import Token -from utilities.testing import HttpStatusMixin +from utilities.testing import APITestCase -class VRFTest(HttpStatusMixin, APITestCase): +class VRFTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(VRFTest, self).setUp() self.vrf1 = VRF.objects.create(name='Test VRF 1', rd='65000:1') self.vrf2 = VRF.objects.create(name='Test VRF 2', rd='65000:2') @@ -106,13 +101,11 @@ class VRFTest(HttpStatusMixin, APITestCase): self.assertEqual(VRF.objects.count(), 2) -class RIRTest(HttpStatusMixin, APITestCase): +class RIRTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(RIRTest, self).setUp() self.rir1 = RIR.objects.create(name='Test RIR 1', slug='test-rir-1') self.rir2 = RIR.objects.create(name='Test RIR 2', slug='test-rir-2') @@ -199,13 +192,11 @@ class RIRTest(HttpStatusMixin, APITestCase): self.assertEqual(RIR.objects.count(), 2) -class AggregateTest(HttpStatusMixin, APITestCase): +class AggregateTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(AggregateTest, self).setUp() self.rir1 = RIR.objects.create(name='Test RIR 1', slug='test-rir-1') self.rir2 = RIR.objects.create(name='Test RIR 2', slug='test-rir-2') @@ -294,13 +285,11 @@ class AggregateTest(HttpStatusMixin, APITestCase): self.assertEqual(Aggregate.objects.count(), 2) -class RoleTest(HttpStatusMixin, APITestCase): +class RoleTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(RoleTest, self).setUp() self.role1 = Role.objects.create(name='Test Role 1', slug='test-role-1') self.role2 = Role.objects.create(name='Test Role 2', slug='test-role-2') @@ -387,13 +376,11 @@ class RoleTest(HttpStatusMixin, APITestCase): self.assertEqual(Role.objects.count(), 2) -class PrefixTest(HttpStatusMixin, APITestCase): +class PrefixTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(PrefixTest, self).setUp() self.site1 = Site.objects.create(name='Test Site 1', slug='test-site-1') self.vrf1 = VRF.objects.create(name='Test VRF 1', rd='65000:1') @@ -614,13 +601,11 @@ class PrefixTest(HttpStatusMixin, APITestCase): self.assertEqual(len(response.data), 8) -class IPAddressTest(HttpStatusMixin, APITestCase): +class IPAddressTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(IPAddressTest, self).setUp() self.vrf1 = VRF.objects.create(name='Test VRF 1', rd='65000:1') self.ipaddress1 = IPAddress.objects.create(address=IPNetwork('192.168.0.1/24')) @@ -705,13 +690,11 @@ class IPAddressTest(HttpStatusMixin, APITestCase): self.assertEqual(IPAddress.objects.count(), 2) -class VLANGroupTest(HttpStatusMixin, APITestCase): +class VLANGroupTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(VLANGroupTest, self).setUp() self.vlangroup1 = VLANGroup.objects.create(name='Test VLAN Group 1', slug='test-vlan-group-1') self.vlangroup2 = VLANGroup.objects.create(name='Test VLAN Group 2', slug='test-vlan-group-2') @@ -798,13 +781,11 @@ class VLANGroupTest(HttpStatusMixin, APITestCase): self.assertEqual(VLANGroup.objects.count(), 2) -class VLANTest(HttpStatusMixin, APITestCase): +class VLANTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(VLANTest, self).setUp() self.vlan1 = VLAN.objects.create(vid=1, name='Test VLAN 1') self.vlan2 = VLAN.objects.create(vid=2, name='Test VLAN 2') @@ -891,13 +872,11 @@ class VLANTest(HttpStatusMixin, APITestCase): self.assertEqual(VLAN.objects.count(), 2) -class ServiceTest(HttpStatusMixin, APITestCase): +class ServiceTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ServiceTest, self).setUp() site = Site.objects.create(name='Test Site 1', slug='test-site-1') manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') diff --git a/netbox/secrets/tests/test_api.py b/netbox/secrets/tests/test_api.py index 583997612..985e0ea7f 100644 --- a/netbox/secrets/tests/test_api.py +++ b/netbox/secrets/tests/test_api.py @@ -2,15 +2,12 @@ from __future__ import unicode_literals import base64 -from django.contrib.auth.models import User from django.urls import reverse from rest_framework import status -from rest_framework.test import APITestCase from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Site from secrets.models import Secret, SecretRole, SessionKey, UserKey -from users.models import Token -from utilities.testing import HttpStatusMixin +from utilities.testing import APITestCase # Dummy RSA key pair for testing use only PRIVATE_KEY = """-----BEGIN RSA PRIVATE KEY----- @@ -52,13 +49,11 @@ qQIDAQAB -----END PUBLIC KEY-----""" -class SecretRoleTest(HttpStatusMixin, APITestCase): +class SecretRoleTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(SecretRoleTest, self).setUp() self.secretrole1 = SecretRole.objects.create(name='Test Secret Role 1', slug='test-secret-role-1') self.secretrole2 = SecretRole.objects.create(name='Test Secret Role 2', slug='test-secret-role-2') @@ -145,21 +140,20 @@ class SecretRoleTest(HttpStatusMixin, APITestCase): self.assertEqual(SecretRole.objects.count(), 2) -class SecretTest(HttpStatusMixin, APITestCase): +class SecretTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) + super(SecretTest, self).setUp() - userkey = UserKey(user=user, public_key=PUBLIC_KEY) + userkey = UserKey(user=self.user, public_key=PUBLIC_KEY) userkey.save() self.master_key = userkey.get_master_key(PRIVATE_KEY) session_key = SessionKey(userkey=userkey) session_key.save(self.master_key) self.header = { - 'HTTP_AUTHORIZATION': 'Token {}'.format(token.key), + 'HTTP_AUTHORIZATION': 'Token {}'.format(self.token.key), 'HTTP_X_SESSION_KEY': base64.b64encode(session_key.key), } @@ -288,21 +282,20 @@ class SecretTest(HttpStatusMixin, APITestCase): self.assertEqual(Secret.objects.count(), 2) -class GetSessionKeyTest(HttpStatusMixin, APITestCase): +class GetSessionKeyTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) + super(GetSessionKeyTest, self).setUp() - userkey = UserKey(user=user, public_key=PUBLIC_KEY) + userkey = UserKey(user=self.user, public_key=PUBLIC_KEY) userkey.save() master_key = userkey.get_master_key(PRIVATE_KEY) self.session_key = SessionKey(userkey=userkey) self.session_key.save(master_key) self.header = { - 'HTTP_AUTHORIZATION': 'Token {}'.format(token.key), + 'HTTP_AUTHORIZATION': 'Token {}'.format(self.token.key), } def test_get_session_key(self): diff --git a/netbox/tenancy/tests/test_api.py b/netbox/tenancy/tests/test_api.py index 64fb80f86..95e1a6de3 100644 --- a/netbox/tenancy/tests/test_api.py +++ b/netbox/tenancy/tests/test_api.py @@ -1,22 +1,17 @@ from __future__ import unicode_literals -from django.contrib.auth.models import User from django.urls import reverse from rest_framework import status -from rest_framework.test import APITestCase from tenancy.models import Tenant, TenantGroup -from users.models import Token -from utilities.testing import HttpStatusMixin +from utilities.testing import APITestCase -class TenantGroupTest(HttpStatusMixin, APITestCase): +class TenantGroupTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(TenantGroupTest, self).setUp() self.tenantgroup1 = TenantGroup.objects.create(name='Test Tenant Group 1', slug='test-tenant-group-1') self.tenantgroup2 = TenantGroup.objects.create(name='Test Tenant Group 2', slug='test-tenant-group-2') @@ -103,13 +98,11 @@ class TenantGroupTest(HttpStatusMixin, APITestCase): self.assertEqual(TenantGroup.objects.count(), 2) -class TenantTest(HttpStatusMixin, APITestCase): +class TenantTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(TenantTest, self).setUp() self.tenantgroup1 = TenantGroup.objects.create(name='Test Tenant Group 1', slug='test-tenant-group-1') self.tenantgroup2 = TenantGroup.objects.create(name='Test Tenant Group 2', slug='test-tenant-group-2') diff --git a/netbox/utilities/testing.py b/netbox/utilities/testing.py index fa38166e0..dcc564dfa 100644 --- a/netbox/utilities/testing.py +++ b/netbox/utilities/testing.py @@ -1,11 +1,25 @@ from __future__ import unicode_literals +from django.contrib.auth.models import User +from rest_framework.test import APITestCase as _APITestCase + +from users.models import Token + + +class APITestCase(_APITestCase): + + def setUp(self): + """ + Create a superuser and token for API calls. + """ + self.user = User.objects.create(username='testuser', is_superuser=True) + self.token = Token.objects.create(user=self.user) + self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(self.token.key)} -class HttpStatusMixin(object): - """ - Custom mixin to provide more detail in the event of an unexpected HTTP response. - """ def assertHttpStatus(self, response, expected_status): + """ + Provide more detail in the event of an unexpected HTTP response. + """ err_message = "Expected HTTP status {}; received {}: {}" self.assertEqual(response.status_code, expected_status, err_message.format( expected_status, response.status_code, response.data diff --git a/netbox/virtualization/tests/test_api.py b/netbox/virtualization/tests/test_api.py index 275d0c123..6ecf6ec22 100644 --- a/netbox/virtualization/tests/test_api.py +++ b/netbox/virtualization/tests/test_api.py @@ -1,22 +1,17 @@ from __future__ import unicode_literals -from django.contrib.auth.models import User from django.urls import reverse from rest_framework import status -from rest_framework.test import APITestCase -from users.models import Token -from utilities.testing import HttpStatusMixin +from utilities.testing import APITestCase from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine -class ClusterTypeTest(HttpStatusMixin, APITestCase): +class ClusterTypeTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ClusterTypeTest, self).setUp() self.clustertype1 = ClusterType.objects.create(name='Test Cluster Type 1', slug='test-cluster-type-1') self.clustertype2 = ClusterType.objects.create(name='Test Cluster Type 2', slug='test-cluster-type-2') @@ -103,13 +98,11 @@ class ClusterTypeTest(HttpStatusMixin, APITestCase): self.assertEqual(ClusterType.objects.count(), 2) -class ClusterGroupTest(HttpStatusMixin, APITestCase): +class ClusterGroupTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ClusterGroupTest, self).setUp() self.clustergroup1 = ClusterGroup.objects.create(name='Test Cluster Group 1', slug='test-cluster-group-1') self.clustergroup2 = ClusterGroup.objects.create(name='Test Cluster Group 2', slug='test-cluster-group-2') @@ -196,13 +189,11 @@ class ClusterGroupTest(HttpStatusMixin, APITestCase): self.assertEqual(ClusterGroup.objects.count(), 2) -class ClusterTest(HttpStatusMixin, APITestCase): +class ClusterTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(ClusterTest, self).setUp() cluster_type = ClusterType.objects.create(name='Test Cluster Type 1', slug='test-cluster-type-1') cluster_group = ClusterGroup.objects.create(name='Test Cluster Group 1', slug='test-cluster-group-1') @@ -301,13 +292,11 @@ class ClusterTest(HttpStatusMixin, APITestCase): self.assertEqual(Cluster.objects.count(), 2) -class VirtualMachineTest(HttpStatusMixin, APITestCase): +class VirtualMachineTest(APITestCase): def setUp(self): - user = User.objects.create(username='testuser', is_superuser=True) - token = Token.objects.create(user=user) - self.header = {'HTTP_AUTHORIZATION': 'Token {}'.format(token.key)} + super(VirtualMachineTest, self).setUp() cluster_type = ClusterType.objects.create(name='Test Cluster Type 1', slug='test-cluster-type-1') cluster_group = ClusterGroup.objects.create(name='Test Cluster Group 1', slug='test-cluster-group-1')