| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- from django.contrib.contenttypes.models import ContentType
- from django.test import override_settings
- from django.urls import reverse
- from circuits.choices import *
- from circuits.models import Circuit, CircuitTermination, CircuitType, Provider
- from dcim.models import Site
- from extras.models import Graph
- from utilities.testing import APITestCase, APIViewTestCases
- class AppTest(APITestCase):
- def test_root(self):
- url = reverse('circuits-api:api-root')
- response = self.client.get('{}?format=api'.format(url), **self.header)
- self.assertEqual(response.status_code, 200)
- class ProviderTest(APIViewTestCases.APIViewTestCase):
- model = Provider
- brief_fields = ['circuit_count', 'id', 'name', 'slug', 'url']
- create_data = [
- {
- 'name': 'Provider 4',
- 'slug': 'provider-4',
- },
- {
- 'name': 'Provider 5',
- 'slug': 'provider-5',
- },
- {
- 'name': 'Provider 6',
- 'slug': 'provider-6',
- },
- ]
- @classmethod
- def setUpTestData(cls):
- providers = (
- Provider(name='Provider 1', slug='provider-1'),
- Provider(name='Provider 2', slug='provider-2'),
- Provider(name='Provider 3', slug='provider-3'),
- )
- Provider.objects.bulk_create(providers)
- @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
- def test_get_provider_graphs(self):
- """
- Test retrieval of Graphs assigned to Providers.
- """
- provider = self.model.objects.unrestricted().first()
- ct = ContentType.objects.get(app_label='circuits', model='provider')
- graphs = (
- Graph(type=ct, name='Graph 1', source='http://example.com/graphs.py?provider={{ obj.slug }}&foo=1'),
- Graph(type=ct, name='Graph 2', source='http://example.com/graphs.py?provider={{ obj.slug }}&foo=2'),
- Graph(type=ct, name='Graph 3', source='http://example.com/graphs.py?provider={{ obj.slug }}&foo=3'),
- )
- Graph.objects.bulk_create(graphs)
- self.add_permissions('circuits.view_provider')
- url = reverse('circuits-api:provider-graphs', kwargs={'pk': provider.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?provider=provider-1&foo=1')
- class CircuitTypeTest(APIViewTestCases.APIViewTestCase):
- model = CircuitType
- brief_fields = ['circuit_count', 'id', 'name', 'slug', 'url']
- create_data = (
- {
- 'name': 'Circuit Type 4',
- 'slug': 'circuit-type-4',
- },
- {
- 'name': 'Circuit Type 5',
- 'slug': 'circuit-type-5',
- },
- {
- 'name': 'Circuit Type 6',
- 'slug': 'circuit-type-6',
- },
- )
- @classmethod
- def setUpTestData(cls):
- circuit_types = (
- CircuitType(name='Circuit Type 1', slug='circuit-type-1'),
- CircuitType(name='Circuit Type 2', slug='circuit-type-2'),
- CircuitType(name='Circuit Type 3', slug='circuit-type-3'),
- )
- CircuitType.objects.bulk_create(circuit_types)
- class CircuitTest(APIViewTestCases.APIViewTestCase):
- model = Circuit
- brief_fields = ['cid', 'id', 'url']
- @classmethod
- def setUpTestData(cls):
- providers = (
- Provider(name='Provider 1', slug='provider-1'),
- Provider(name='Provider 2', slug='provider-2'),
- )
- Provider.objects.bulk_create(providers)
- circuit_types = (
- CircuitType(name='Circuit Type 1', slug='circuit-type-1'),
- CircuitType(name='Circuit Type 2', slug='circuit-type-2'),
- )
- CircuitType.objects.bulk_create(circuit_types)
- circuits = (
- Circuit(cid='Circuit 1', provider=providers[0], type=circuit_types[0]),
- Circuit(cid='Circuit 2', provider=providers[0], type=circuit_types[0]),
- Circuit(cid='Circuit 3', provider=providers[0], type=circuit_types[0]),
- )
- Circuit.objects.bulk_create(circuits)
- cls.create_data = [
- {
- 'cid': 'Circuit 4',
- 'provider': providers[1].pk,
- 'type': circuit_types[1].pk,
- },
- {
- 'cid': 'Circuit 5',
- 'provider': providers[1].pk,
- 'type': circuit_types[1].pk,
- },
- {
- 'cid': 'Circuit 6',
- 'provider': providers[1].pk,
- 'type': circuit_types[1].pk,
- },
- ]
- class CircuitTerminationTest(APIViewTestCases.APIViewTestCase):
- model = CircuitTermination
- brief_fields = ['circuit', 'id', 'term_side', 'url']
- @classmethod
- def setUpTestData(cls):
- SIDE_A = CircuitTerminationSideChoices.SIDE_A
- SIDE_Z = CircuitTerminationSideChoices.SIDE_Z
- sites = (
- Site(name='Site 1', slug='site-1'),
- Site(name='Site 2', slug='site-2'),
- )
- Site.objects.bulk_create(sites)
- provider = Provider.objects.create(name='Provider 1', slug='provider-1')
- circuit_type = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1')
- circuits = (
- Circuit(cid='Circuit 1', provider=provider, type=circuit_type),
- Circuit(cid='Circuit 2', provider=provider, type=circuit_type),
- Circuit(cid='Circuit 3', provider=provider, type=circuit_type),
- )
- Circuit.objects.bulk_create(circuits)
- circuit_terminations = (
- CircuitTermination(circuit=circuits[0], site=sites[0], port_speed=100000, term_side=SIDE_A),
- CircuitTermination(circuit=circuits[0], site=sites[1], port_speed=100000, term_side=SIDE_Z),
- CircuitTermination(circuit=circuits[1], site=sites[0], port_speed=100000, term_side=SIDE_A),
- CircuitTermination(circuit=circuits[1], site=sites[1], port_speed=100000, term_side=SIDE_Z),
- )
- CircuitTermination.objects.bulk_create(circuit_terminations)
- cls.create_data = [
- {
- 'circuit': circuits[2].pk,
- 'term_side': SIDE_A,
- 'site': sites[1].pk,
- 'port_speed': 200000,
- },
- {
- 'circuit': circuits[2].pk,
- 'term_side': SIDE_Z,
- 'site': sites[1].pk,
- 'port_speed': 200000,
- },
- ]
|