From 925afe0999ef02c4387e5db8689d293a45097721 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 20 Mar 2017 21:39:40 -0400 Subject: [PATCH] Added test case for ConnectedDeviceViewSet --- netbox/dcim/api/views.py | 2 +- netbox/dcim/tests/test_api.py | 42 +++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/netbox/dcim/api/views.py b/netbox/dcim/api/views.py index e185eac93..3b2520713 100644 --- a/netbox/dcim/api/views.py +++ b/netbox/dcim/api/views.py @@ -1,4 +1,4 @@ -from rest_framework.decorators import detail_route +from rest_framework.decorators import detail_route, list_route from rest_framework.permissions import IsAuthenticated from rest_framework.response import Response from rest_framework.viewsets import ModelViewSet, ViewSet diff --git a/netbox/dcim/tests/test_api.py b/netbox/dcim/tests/test_api.py index bf3e000bd..b06a4f958 100644 --- a/netbox/dcim/tests/test_api.py +++ b/netbox/dcim/tests/test_api.py @@ -2028,3 +2028,45 @@ class InterfaceConnectionTest(HttpStatusMixin, APITestCase): self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT) self.assertEqual(InterfaceConnection.objects.count(), 2) + + +class ConnectedDeviceTest(HttpStatusMixin, 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)} + + 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') + manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1') + self.devicetype1 = DeviceType.objects.create( + manufacturer=manufacturer, model='Test Device Type 1', slug='test-device-type-1' + ) + self.devicetype2 = DeviceType.objects.create( + manufacturer=manufacturer, model='Test Device Type 2', slug='test-device-type-2' + ) + self.devicerole1 = DeviceRole.objects.create( + name='Test Device Role 1', slug='test-device-role-1', color='ff0000' + ) + self.devicerole2 = DeviceRole.objects.create( + name='Test Device Role 2', slug='test-device-role-2', color='00ff00' + ) + self.device1 = Device.objects.create( + device_type=self.devicetype1, device_role=self.devicerole1, name='TestDevice1', site=self.site1 + ) + self.device2 = Device.objects.create( + device_type=self.devicetype1, device_role=self.devicerole1, name='TestDevice2', site=self.site1 + ) + self.interface1 = Interface.objects.create(device=self.device1, name='eth0') + self.interface2 = Interface.objects.create(device=self.device2, name='eth0') + InterfaceConnection.objects.create(interface_a=self.interface1, interface_b=self.interface2) + + def test_get_connected_device(self): + + url = reverse('dcim-api:connected-device-list') + response = self.client.get(url + '?peer-device=TestDevice2&peer-interface=eth0', **self.header) + + self.assertHttpStatus(response, status.HTTP_200_OK) + self.assertEqual(response.data['name'], self.device1.name)