|
@@ -10,6 +10,7 @@ from dcim.models import (
|
|
|
Manufacturer, Module, Platform, PowerPort, PowerPortTemplate, PowerOutlet, PowerOutletTemplate, Rack, RackGroup,
|
|
Manufacturer, Module, Platform, PowerPort, PowerPortTemplate, PowerOutlet, PowerOutletTemplate, Rack, RackGroup,
|
|
|
RackReservation, RackRole, Region, Site, SUBDEVICE_ROLE_CHILD, SUBDEVICE_ROLE_PARENT,
|
|
RackReservation, RackRole, Region, Site, SUBDEVICE_ROLE_CHILD, SUBDEVICE_ROLE_PARENT,
|
|
|
)
|
|
)
|
|
|
|
|
+from extras.models import Graph, GRAPH_TYPE_INTERFACE, GRAPH_TYPE_SITE
|
|
|
from users.models import Token
|
|
from users.models import Token
|
|
|
from utilities.tests import HttpStatusMixin
|
|
from utilities.tests import HttpStatusMixin
|
|
|
|
|
|
|
@@ -102,6 +103,27 @@ class SiteTest(HttpStatusMixin, APITestCase):
|
|
|
|
|
|
|
|
self.assertEqual(response.data['name'], self.site1.name)
|
|
self.assertEqual(response.data['name'], self.site1.name)
|
|
|
|
|
|
|
|
|
|
+ def test_get_site_graphs(self):
|
|
|
|
|
+
|
|
|
|
|
+ self.graph1 = Graph.objects.create(
|
|
|
|
|
+ type=GRAPH_TYPE_SITE, name='Test Graph 1',
|
|
|
|
|
+ source='http://example.com/graphs.py?site={{ obj.slug }}&foo=1'
|
|
|
|
|
+ )
|
|
|
|
|
+ self.graph2 = Graph.objects.create(
|
|
|
|
|
+ type=GRAPH_TYPE_SITE, name='Test Graph 2',
|
|
|
|
|
+ source='http://example.com/graphs.py?site={{ obj.slug }}&foo=2'
|
|
|
|
|
+ )
|
|
|
|
|
+ self.graph3 = Graph.objects.create(
|
|
|
|
|
+ type=GRAPH_TYPE_SITE, name='Test Graph 3',
|
|
|
|
|
+ source='http://example.com/graphs.py?site={{ obj.slug }}&foo=3'
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ url = reverse('dcim-api:site-graphs', kwargs={'pk': self.site1.pk})
|
|
|
|
|
+ response = self.client.get(url, **self.header)
|
|
|
|
|
+
|
|
|
|
|
+ self.assertEqual(len(response.data), 3)
|
|
|
|
|
+ self.assertEqual(response.data[0]['embed_url'], 'http://example.com/graphs.py?site=test-site-1&foo=1')
|
|
|
|
|
+
|
|
|
def test_list_sites(self):
|
|
def test_list_sites(self):
|
|
|
|
|
|
|
|
url = reverse('dcim-api:site-list')
|
|
url = reverse('dcim-api:site-list')
|
|
@@ -1655,6 +1677,27 @@ class InterfaceTest(HttpStatusMixin, APITestCase):
|
|
|
|
|
|
|
|
self.assertEqual(response.data['name'], self.interface1.name)
|
|
self.assertEqual(response.data['name'], self.interface1.name)
|
|
|
|
|
|
|
|
|
|
+ def test_get_interface_graphs(self):
|
|
|
|
|
+
|
|
|
|
|
+ self.graph1 = Graph.objects.create(
|
|
|
|
|
+ type=GRAPH_TYPE_INTERFACE, name='Test Graph 1',
|
|
|
|
|
+ source='http://example.com/graphs.py?interface={{ obj.name }}&foo=1'
|
|
|
|
|
+ )
|
|
|
|
|
+ self.graph2 = Graph.objects.create(
|
|
|
|
|
+ type=GRAPH_TYPE_INTERFACE, name='Test Graph 2',
|
|
|
|
|
+ source='http://example.com/graphs.py?interface={{ obj.name }}&foo=2'
|
|
|
|
|
+ )
|
|
|
|
|
+ self.graph3 = Graph.objects.create(
|
|
|
|
|
+ type=GRAPH_TYPE_INTERFACE, name='Test Graph 3',
|
|
|
|
|
+ source='http://example.com/graphs.py?interface={{ obj.name }}&foo=3'
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ url = reverse('dcim-api:interface-graphs', kwargs={'pk': self.interface1.pk})
|
|
|
|
|
+ response = self.client.get(url, **self.header)
|
|
|
|
|
+
|
|
|
|
|
+ self.assertEqual(len(response.data), 3)
|
|
|
|
|
+ self.assertEqual(response.data[0]['embed_url'], 'http://example.com/graphs.py?interface=Test Interface 1&foo=1')
|
|
|
|
|
+
|
|
|
def test_list_interfaces(self):
|
|
def test_list_interfaces(self):
|
|
|
|
|
|
|
|
url = reverse('dcim-api:interface-list')
|
|
url = reverse('dcim-api:interface-list')
|