|
@@ -1,43 +1,55 @@
|
|
|
from django.contrib.contenttypes.models import ContentType
|
|
from django.contrib.contenttypes.models import ContentType
|
|
|
from django.urls import reverse
|
|
from django.urls import reverse
|
|
|
-from rest_framework import status
|
|
|
|
|
|
|
|
|
|
from circuits.choices import *
|
|
from circuits.choices import *
|
|
|
from circuits.models import Circuit, CircuitTermination, CircuitType, Provider
|
|
from circuits.models import Circuit, CircuitTermination, CircuitType, Provider
|
|
|
from dcim.models import Site
|
|
from dcim.models import Site
|
|
|
from extras.models import Graph
|
|
from extras.models import Graph
|
|
|
-from utilities.testing import APITestCase
|
|
|
|
|
|
|
+from utilities.testing import APITestCase, APIViewTestCases
|
|
|
|
|
|
|
|
|
|
|
|
|
class AppTest(APITestCase):
|
|
class AppTest(APITestCase):
|
|
|
|
|
|
|
|
def test_root(self):
|
|
def test_root(self):
|
|
|
-
|
|
|
|
|
url = reverse('circuits-api:api-root')
|
|
url = reverse('circuits-api:api-root')
|
|
|
response = self.client.get('{}?format=api'.format(url), **self.header)
|
|
response = self.client.get('{}?format=api'.format(url), **self.header)
|
|
|
|
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
|
|
|
|
|
|
|
-class ProviderTest(APITestCase):
|
|
|
|
|
-
|
|
|
|
|
- def setUp(self):
|
|
|
|
|
-
|
|
|
|
|
- super().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')
|
|
|
|
|
- self.provider3 = Provider.objects.create(name='Test Provider 3', slug='test-provider-3')
|
|
|
|
|
-
|
|
|
|
|
- def test_get_provider(self):
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:provider-detail', kwargs={'pk': self.provider1.pk})
|
|
|
|
|
- response = self.client.get(url, **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertEqual(response.data['name'], self.provider1.name)
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
def test_get_provider_graphs(self):
|
|
def test_get_provider_graphs(self):
|
|
|
-
|
|
|
|
|
|
|
+ """
|
|
|
|
|
+ Test retrieval of Graphs assigned to Providers.
|
|
|
|
|
+ """
|
|
|
|
|
+ provider = self.model.objects.first()
|
|
|
provider_ct = ContentType.objects.get(app_label='circuits', model='provider')
|
|
provider_ct = ContentType.objects.get(app_label='circuits', model='provider')
|
|
|
self.graph1 = Graph.objects.create(
|
|
self.graph1 = Graph.objects.create(
|
|
|
type=provider_ct,
|
|
type=provider_ct,
|
|
@@ -55,389 +67,131 @@ class ProviderTest(APITestCase):
|
|
|
source='http://example.com/graphs.py?provider={{ obj.slug }}&foo=3'
|
|
source='http://example.com/graphs.py?provider={{ obj.slug }}&foo=3'
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- url = reverse('circuits-api:provider-graphs', kwargs={'pk': self.provider1.pk})
|
|
|
|
|
|
|
+ url = reverse('circuits-api:provider-graphs', kwargs={'pk': provider.pk})
|
|
|
response = self.client.get(url, **self.header)
|
|
response = self.client.get(url, **self.header)
|
|
|
|
|
|
|
|
self.assertEqual(len(response.data), 3)
|
|
self.assertEqual(len(response.data), 3)
|
|
|
- self.assertEqual(response.data[0]['embed_url'], 'http://example.com/graphs.py?provider=test-provider-1&foo=1')
|
|
|
|
|
-
|
|
|
|
|
- def test_list_providers(self):
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:provider-list')
|
|
|
|
|
- response = self.client.get(url, **self.header)
|
|
|
|
|
|
|
+ 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)
|
|
|
|
|
|
|
|
- self.assertEqual(response.data['count'], 3)
|
|
|
|
|
|
|
|
|
|
- def test_list_providers_brief(self):
|
|
|
|
|
|
|
+class CircuitTest(APIViewTestCases.APIViewTestCase):
|
|
|
|
|
+ model = Circuit
|
|
|
|
|
+ brief_fields = ['cid', 'id', 'url']
|
|
|
|
|
|
|
|
- url = reverse('circuits-api:provider-list')
|
|
|
|
|
- response = self.client.get('{}?brief=1'.format(url), **self.header)
|
|
|
|
|
|
|
+ @classmethod
|
|
|
|
|
+ def setUpTestData(cls):
|
|
|
|
|
|
|
|
- self.assertEqual(
|
|
|
|
|
- sorted(response.data['results'][0]),
|
|
|
|
|
- ['circuit_count', 'id', 'name', 'slug', 'url']
|
|
|
|
|
|
|
+ providers = (
|
|
|
|
|
+ Provider(name='Provider 1', slug='provider-1'),
|
|
|
|
|
+ Provider(name='Provider 2', slug='provider-2'),
|
|
|
)
|
|
)
|
|
|
|
|
+ Provider.objects.bulk_create(providers)
|
|
|
|
|
|
|
|
- def test_create_provider(self):
|
|
|
|
|
-
|
|
|
|
|
- data = {
|
|
|
|
|
- 'name': 'Test Provider 4',
|
|
|
|
|
- 'slug': 'test-provider-4',
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:provider-list')
|
|
|
|
|
- response = self.client.post(url, data, format='json', **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_201_CREATED)
|
|
|
|
|
- self.assertEqual(Provider.objects.count(), 4)
|
|
|
|
|
- provider4 = Provider.objects.get(pk=response.data['id'])
|
|
|
|
|
- self.assertEqual(provider4.name, data['name'])
|
|
|
|
|
- self.assertEqual(provider4.slug, data['slug'])
|
|
|
|
|
|
|
+ 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)
|
|
|
|
|
|
|
|
- def test_create_provider_bulk(self):
|
|
|
|
|
|
|
+ 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)
|
|
|
|
|
|
|
|
- data = [
|
|
|
|
|
|
|
+ cls.create_data = [
|
|
|
{
|
|
{
|
|
|
- 'name': 'Test Provider 4',
|
|
|
|
|
- 'slug': 'test-provider-4',
|
|
|
|
|
|
|
+ 'cid': 'Circuit 4',
|
|
|
|
|
+ 'provider': providers[1].pk,
|
|
|
|
|
+ 'type': circuit_types[1].pk,
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- 'name': 'Test Provider 5',
|
|
|
|
|
- 'slug': 'test-provider-5',
|
|
|
|
|
|
|
+ 'cid': 'Circuit 5',
|
|
|
|
|
+ 'provider': providers[1].pk,
|
|
|
|
|
+ 'type': circuit_types[1].pk,
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- 'name': 'Test Provider 6',
|
|
|
|
|
- 'slug': 'test-provider-6',
|
|
|
|
|
|
|
+ 'cid': 'Circuit 6',
|
|
|
|
|
+ 'provider': providers[1].pk,
|
|
|
|
|
+ 'type': circuit_types[1].pk,
|
|
|
},
|
|
},
|
|
|
]
|
|
]
|
|
|
|
|
|
|
|
- url = reverse('circuits-api:provider-list')
|
|
|
|
|
- response = self.client.post(url, data, format='json', **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_201_CREATED)
|
|
|
|
|
- self.assertEqual(Provider.objects.count(), 6)
|
|
|
|
|
- self.assertEqual(response.data[0]['name'], data[0]['name'])
|
|
|
|
|
- self.assertEqual(response.data[1]['name'], data[1]['name'])
|
|
|
|
|
- self.assertEqual(response.data[2]['name'], data[2]['name'])
|
|
|
|
|
-
|
|
|
|
|
- def test_update_provider(self):
|
|
|
|
|
-
|
|
|
|
|
- data = {
|
|
|
|
|
- 'name': 'Test Provider X',
|
|
|
|
|
- 'slug': 'test-provider-x',
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:provider-detail', kwargs={'pk': self.provider1.pk})
|
|
|
|
|
- response = self.client.put(url, data, format='json', **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_200_OK)
|
|
|
|
|
- self.assertEqual(Provider.objects.count(), 3)
|
|
|
|
|
- provider1 = Provider.objects.get(pk=response.data['id'])
|
|
|
|
|
- self.assertEqual(provider1.name, data['name'])
|
|
|
|
|
- self.assertEqual(provider1.slug, data['slug'])
|
|
|
|
|
-
|
|
|
|
|
- def test_delete_provider(self):
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:provider-detail', kwargs={'pk': self.provider1.pk})
|
|
|
|
|
- response = self.client.delete(url, **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT)
|
|
|
|
|
- self.assertEqual(Provider.objects.count(), 2)
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
-class CircuitTypeTest(APITestCase):
|
|
|
|
|
|
|
+class CircuitTerminationTest(APIViewTestCases.APIViewTestCase):
|
|
|
|
|
+ model = CircuitTermination
|
|
|
|
|
+ brief_fields = ['circuit', 'id', 'term_side', 'url']
|
|
|
|
|
|
|
|
- def setUp(self):
|
|
|
|
|
|
|
+ @classmethod
|
|
|
|
|
+ def setUpTestData(cls):
|
|
|
|
|
+ SIDE_A = CircuitTerminationSideChoices.SIDE_A
|
|
|
|
|
+ SIDE_Z = CircuitTerminationSideChoices.SIDE_Z
|
|
|
|
|
|
|
|
- super().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')
|
|
|
|
|
- self.circuittype3 = CircuitType.objects.create(name='Test Circuit Type 3', slug='test-circuit-type-3')
|
|
|
|
|
-
|
|
|
|
|
- def test_get_circuittype(self):
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuittype-detail', kwargs={'pk': self.circuittype1.pk})
|
|
|
|
|
- response = self.client.get(url, **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertEqual(response.data['name'], self.circuittype1.name)
|
|
|
|
|
-
|
|
|
|
|
- def test_list_circuittypes(self):
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuittype-list')
|
|
|
|
|
- response = self.client.get(url, **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertEqual(response.data['count'], 3)
|
|
|
|
|
-
|
|
|
|
|
- def test_list_circuittypes_brief(self):
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuittype-list')
|
|
|
|
|
- response = self.client.get('{}?brief=1'.format(url), **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertEqual(
|
|
|
|
|
- sorted(response.data['results'][0]),
|
|
|
|
|
- ['circuit_count', 'id', 'name', 'slug', 'url']
|
|
|
|
|
|
|
+ sites = (
|
|
|
|
|
+ Site(name='Site 1', slug='site-1'),
|
|
|
|
|
+ Site(name='Site 2', slug='site-2'),
|
|
|
)
|
|
)
|
|
|
|
|
+ Site.objects.bulk_create(sites)
|
|
|
|
|
|
|
|
- def test_create_circuittype(self):
|
|
|
|
|
-
|
|
|
|
|
- data = {
|
|
|
|
|
- 'name': 'Test Circuit Type 4',
|
|
|
|
|
- 'slug': 'test-circuit-type-4',
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuittype-list')
|
|
|
|
|
- response = self.client.post(url, data, format='json', **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_201_CREATED)
|
|
|
|
|
- self.assertEqual(CircuitType.objects.count(), 4)
|
|
|
|
|
- circuittype4 = CircuitType.objects.get(pk=response.data['id'])
|
|
|
|
|
- self.assertEqual(circuittype4.name, data['name'])
|
|
|
|
|
- self.assertEqual(circuittype4.slug, data['slug'])
|
|
|
|
|
-
|
|
|
|
|
- def test_update_circuittype(self):
|
|
|
|
|
-
|
|
|
|
|
- data = {
|
|
|
|
|
- 'name': 'Test Circuit Type X',
|
|
|
|
|
- 'slug': 'test-circuit-type-x',
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuittype-detail', kwargs={'pk': self.circuittype1.pk})
|
|
|
|
|
- response = self.client.put(url, data, format='json', **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_200_OK)
|
|
|
|
|
- self.assertEqual(CircuitType.objects.count(), 3)
|
|
|
|
|
- circuittype1 = CircuitType.objects.get(pk=response.data['id'])
|
|
|
|
|
- self.assertEqual(circuittype1.name, data['name'])
|
|
|
|
|
- self.assertEqual(circuittype1.slug, data['slug'])
|
|
|
|
|
-
|
|
|
|
|
- def test_delete_circuittype(self):
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuittype-detail', kwargs={'pk': self.circuittype1.pk})
|
|
|
|
|
- response = self.client.delete(url, **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT)
|
|
|
|
|
- self.assertEqual(CircuitType.objects.count(), 2)
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-class CircuitTest(APITestCase):
|
|
|
|
|
-
|
|
|
|
|
- def setUp(self):
|
|
|
|
|
-
|
|
|
|
|
- super().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')
|
|
|
|
|
- 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')
|
|
|
|
|
- self.circuit1 = Circuit.objects.create(cid='TEST0001', provider=self.provider1, type=self.circuittype1)
|
|
|
|
|
- self.circuit2 = Circuit.objects.create(cid='TEST0002', provider=self.provider1, type=self.circuittype1)
|
|
|
|
|
- self.circuit3 = Circuit.objects.create(cid='TEST0003', provider=self.provider1, type=self.circuittype1)
|
|
|
|
|
-
|
|
|
|
|
- def test_get_circuit(self):
|
|
|
|
|
|
|
+ provider = Provider.objects.create(name='Provider 1', slug='provider-1')
|
|
|
|
|
+ circuit_type = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1')
|
|
|
|
|
|
|
|
- url = reverse('circuits-api:circuit-detail', kwargs={'pk': self.circuit1.pk})
|
|
|
|
|
- response = self.client.get(url, **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertEqual(response.data['cid'], self.circuit1.cid)
|
|
|
|
|
-
|
|
|
|
|
- def test_list_circuits(self):
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuit-list')
|
|
|
|
|
- response = self.client.get(url, **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertEqual(response.data['count'], 3)
|
|
|
|
|
-
|
|
|
|
|
- def test_list_circuits_brief(self):
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuit-list')
|
|
|
|
|
- response = self.client.get('{}?brief=1'.format(url), **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertEqual(
|
|
|
|
|
- sorted(response.data['results'][0]),
|
|
|
|
|
- ['cid', 'id', 'url']
|
|
|
|
|
|
|
+ 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)
|
|
|
|
|
|
|
|
- def test_create_circuit(self):
|
|
|
|
|
-
|
|
|
|
|
- data = {
|
|
|
|
|
- 'cid': 'TEST0004',
|
|
|
|
|
- 'provider': self.provider1.pk,
|
|
|
|
|
- 'type': self.circuittype1.pk,
|
|
|
|
|
- 'status': CircuitStatusChoices.STATUS_ACTIVE,
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuit-list')
|
|
|
|
|
- response = self.client.post(url, data, format='json', **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_201_CREATED)
|
|
|
|
|
- self.assertEqual(Circuit.objects.count(), 4)
|
|
|
|
|
- circuit4 = Circuit.objects.get(pk=response.data['id'])
|
|
|
|
|
- self.assertEqual(circuit4.cid, data['cid'])
|
|
|
|
|
- self.assertEqual(circuit4.provider_id, data['provider'])
|
|
|
|
|
- self.assertEqual(circuit4.type_id, data['type'])
|
|
|
|
|
-
|
|
|
|
|
- def test_create_circuit_bulk(self):
|
|
|
|
|
|
|
+ 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)
|
|
|
|
|
|
|
|
- data = [
|
|
|
|
|
|
|
+ cls.create_data = [
|
|
|
{
|
|
{
|
|
|
- 'cid': 'TEST0004',
|
|
|
|
|
- 'provider': self.provider1.pk,
|
|
|
|
|
- 'type': self.circuittype1.pk,
|
|
|
|
|
- 'status': CircuitStatusChoices.STATUS_ACTIVE,
|
|
|
|
|
|
|
+ 'circuit': circuits[2].pk,
|
|
|
|
|
+ 'term_side': SIDE_A,
|
|
|
|
|
+ 'site': sites[1].pk,
|
|
|
|
|
+ 'port_speed': 200000,
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- 'cid': 'TEST0005',
|
|
|
|
|
- 'provider': self.provider1.pk,
|
|
|
|
|
- 'type': self.circuittype1.pk,
|
|
|
|
|
- 'status': CircuitStatusChoices.STATUS_ACTIVE,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- 'cid': 'TEST0006',
|
|
|
|
|
- 'provider': self.provider1.pk,
|
|
|
|
|
- 'type': self.circuittype1.pk,
|
|
|
|
|
- 'status': CircuitStatusChoices.STATUS_ACTIVE,
|
|
|
|
|
|
|
+ 'circuit': circuits[2].pk,
|
|
|
|
|
+ 'term_side': SIDE_Z,
|
|
|
|
|
+ 'site': sites[1].pk,
|
|
|
|
|
+ 'port_speed': 200000,
|
|
|
},
|
|
},
|
|
|
]
|
|
]
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuit-list')
|
|
|
|
|
- response = self.client.post(url, data, format='json', **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_201_CREATED)
|
|
|
|
|
- self.assertEqual(Circuit.objects.count(), 6)
|
|
|
|
|
- self.assertEqual(response.data[0]['cid'], data[0]['cid'])
|
|
|
|
|
- self.assertEqual(response.data[1]['cid'], data[1]['cid'])
|
|
|
|
|
- self.assertEqual(response.data[2]['cid'], data[2]['cid'])
|
|
|
|
|
-
|
|
|
|
|
- def test_update_circuit(self):
|
|
|
|
|
-
|
|
|
|
|
- data = {
|
|
|
|
|
- 'cid': 'TEST000X',
|
|
|
|
|
- 'provider': self.provider2.pk,
|
|
|
|
|
- 'type': self.circuittype2.pk,
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuit-detail', kwargs={'pk': self.circuit1.pk})
|
|
|
|
|
- response = self.client.put(url, data, format='json', **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_200_OK)
|
|
|
|
|
- self.assertEqual(Circuit.objects.count(), 3)
|
|
|
|
|
- circuit1 = Circuit.objects.get(pk=response.data['id'])
|
|
|
|
|
- self.assertEqual(circuit1.cid, data['cid'])
|
|
|
|
|
- self.assertEqual(circuit1.provider_id, data['provider'])
|
|
|
|
|
- self.assertEqual(circuit1.type_id, data['type'])
|
|
|
|
|
-
|
|
|
|
|
- def test_delete_circuit(self):
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuit-detail', kwargs={'pk': self.circuit1.pk})
|
|
|
|
|
- response = self.client.delete(url, **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT)
|
|
|
|
|
- self.assertEqual(Circuit.objects.count(), 2)
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-class CircuitTerminationTest(APITestCase):
|
|
|
|
|
-
|
|
|
|
|
- def setUp(self):
|
|
|
|
|
-
|
|
|
|
|
- super().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')
|
|
|
|
|
- provider = Provider.objects.create(name='Test Provider', slug='test-provider')
|
|
|
|
|
- circuittype = CircuitType.objects.create(name='Test Circuit Type', slug='test-circuit-type')
|
|
|
|
|
- self.circuit1 = Circuit.objects.create(cid='TEST0001', provider=provider, type=circuittype)
|
|
|
|
|
- self.circuit2 = Circuit.objects.create(cid='TEST0002', provider=provider, type=circuittype)
|
|
|
|
|
- self.circuit3 = Circuit.objects.create(cid='TEST0003', provider=provider, type=circuittype)
|
|
|
|
|
- self.circuittermination1 = CircuitTermination.objects.create(
|
|
|
|
|
- circuit=self.circuit1,
|
|
|
|
|
- term_side=CircuitTerminationSideChoices.SIDE_A,
|
|
|
|
|
- site=self.site1,
|
|
|
|
|
- port_speed=1000000
|
|
|
|
|
- )
|
|
|
|
|
- self.circuittermination2 = CircuitTermination.objects.create(
|
|
|
|
|
- circuit=self.circuit1,
|
|
|
|
|
- term_side=CircuitTerminationSideChoices.SIDE_Z,
|
|
|
|
|
- site=self.site2,
|
|
|
|
|
- port_speed=1000000
|
|
|
|
|
- )
|
|
|
|
|
- self.circuittermination3 = CircuitTermination.objects.create(
|
|
|
|
|
- circuit=self.circuit2,
|
|
|
|
|
- term_side=CircuitTerminationSideChoices.SIDE_A,
|
|
|
|
|
- site=self.site1,
|
|
|
|
|
- port_speed=1000000
|
|
|
|
|
- )
|
|
|
|
|
- self.circuittermination4 = CircuitTermination.objects.create(
|
|
|
|
|
- circuit=self.circuit2,
|
|
|
|
|
- term_side=CircuitTerminationSideChoices.SIDE_Z,
|
|
|
|
|
- site=self.site2,
|
|
|
|
|
- port_speed=1000000
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
- def test_get_circuittermination(self):
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuittermination-detail', kwargs={'pk': self.circuittermination1.pk})
|
|
|
|
|
- response = self.client.get(url, **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertEqual(response.data['id'], self.circuittermination1.pk)
|
|
|
|
|
-
|
|
|
|
|
- def test_list_circuitterminations(self):
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuittermination-list')
|
|
|
|
|
- response = self.client.get(url, **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertEqual(response.data['count'], 4)
|
|
|
|
|
-
|
|
|
|
|
- def test_create_circuittermination(self):
|
|
|
|
|
-
|
|
|
|
|
- data = {
|
|
|
|
|
- 'circuit': self.circuit3.pk,
|
|
|
|
|
- 'term_side': CircuitTerminationSideChoices.SIDE_A,
|
|
|
|
|
- 'site': self.site1.pk,
|
|
|
|
|
- 'port_speed': 1000000,
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuittermination-list')
|
|
|
|
|
- response = self.client.post(url, data, format='json', **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_201_CREATED)
|
|
|
|
|
- self.assertEqual(CircuitTermination.objects.count(), 5)
|
|
|
|
|
- circuittermination4 = CircuitTermination.objects.get(pk=response.data['id'])
|
|
|
|
|
- self.assertEqual(circuittermination4.circuit_id, data['circuit'])
|
|
|
|
|
- self.assertEqual(circuittermination4.term_side, data['term_side'])
|
|
|
|
|
- self.assertEqual(circuittermination4.site_id, data['site'])
|
|
|
|
|
- self.assertEqual(circuittermination4.port_speed, data['port_speed'])
|
|
|
|
|
-
|
|
|
|
|
- def test_update_circuittermination(self):
|
|
|
|
|
-
|
|
|
|
|
- circuittermination5 = CircuitTermination.objects.create(
|
|
|
|
|
- circuit=self.circuit3,
|
|
|
|
|
- term_side=CircuitTerminationSideChoices.SIDE_A,
|
|
|
|
|
- site=self.site1,
|
|
|
|
|
- port_speed=1000000
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
- data = {
|
|
|
|
|
- 'circuit': self.circuit3.pk,
|
|
|
|
|
- 'term_side': CircuitTerminationSideChoices.SIDE_Z,
|
|
|
|
|
- 'site': self.site2.pk,
|
|
|
|
|
- 'port_speed': 1000000,
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuittermination-detail', kwargs={'pk': circuittermination5.pk})
|
|
|
|
|
- response = self.client.put(url, data, format='json', **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_200_OK)
|
|
|
|
|
- self.assertEqual(CircuitTermination.objects.count(), 5)
|
|
|
|
|
- circuittermination1 = CircuitTermination.objects.get(pk=response.data['id'])
|
|
|
|
|
- self.assertEqual(circuittermination1.term_side, data['term_side'])
|
|
|
|
|
- self.assertEqual(circuittermination1.site_id, data['site'])
|
|
|
|
|
- self.assertEqual(circuittermination1.port_speed, data['port_speed'])
|
|
|
|
|
-
|
|
|
|
|
- def test_delete_circuittermination(self):
|
|
|
|
|
-
|
|
|
|
|
- url = reverse('circuits-api:circuittermination-detail', kwargs={'pk': self.circuittermination1.pk})
|
|
|
|
|
- response = self.client.delete(url, **self.header)
|
|
|
|
|
-
|
|
|
|
|
- self.assertHttpStatus(response, status.HTTP_204_NO_CONTENT)
|
|
|
|
|
- self.assertEqual(CircuitTermination.objects.count(), 3)
|
|
|