From 15004c654f626c0ebe65baa925d599910406dfda Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 9 Jun 2020 14:47:05 -0400 Subject: [PATCH] Add missing API cable trace test for interfaces --- netbox/dcim/tests/test_api.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/netbox/dcim/tests/test_api.py b/netbox/dcim/tests/test_api.py index 39bc181fe..b2d348843 100644 --- a/netbox/dcim/tests/test_api.py +++ b/netbox/dcim/tests/test_api.py @@ -1254,6 +1254,34 @@ class InterfaceTest(APIViewTestCases.APIViewTestCase): self.assertEqual(len(response.data), 3) self.assertEqual(response.data[0]['embed_url'], 'http://example.com/graphs.py?interface=Interface 1&foo=1') + def test_trace_interface(self): + """ + Test tracing an Interface cable. + """ + interface_a = Interface.objects.first() + peer_device = Device.objects.create( + site=Site.objects.first(), + device_type=DeviceType.objects.first(), + device_role=DeviceRole.objects.first(), + name='Peer Device' + ) + interface_b = Interface.objects.create( + device=peer_device, + name='Interface X' + ) + cable = Cable(termination_a=interface_a, termination_b=interface_b, label='Cable 1') + cable.save() + + url = reverse('dcim-api:interface-trace', kwargs={'pk': interface_a.pk}) + response = self.client.get(url, **self.header) + + self.assertHttpStatus(response, status.HTTP_200_OK) + self.assertEqual(len(response.data), 1) + segment1 = response.data[0] + self.assertEqual(segment1[0]['name'], interface_a.name) + self.assertEqual(segment1[1]['label'], cable.label) + self.assertEqual(segment1[2]['name'], interface_b.name) + class FrontPortTest(APIViewTestCases.APIViewTestCase): model = FrontPort