test_api.py 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. from django.urls import reverse
  2. from circuits.choices import *
  3. from circuits.models import *
  4. from dcim.models import Site
  5. from utilities.testing import APITestCase, APIViewTestCases
  6. class AppTest(APITestCase):
  7. def test_root(self):
  8. url = reverse('circuits-api:api-root')
  9. response = self.client.get('{}?format=api'.format(url), **self.header)
  10. self.assertEqual(response.status_code, 200)
  11. class ProviderTest(APIViewTestCases.APIViewTestCase):
  12. model = Provider
  13. brief_fields = ['circuit_count', 'display', 'id', 'name', 'slug', 'url']
  14. create_data = [
  15. {
  16. 'name': 'Provider 4',
  17. 'slug': 'provider-4',
  18. },
  19. {
  20. 'name': 'Provider 5',
  21. 'slug': 'provider-5',
  22. },
  23. {
  24. 'name': 'Provider 6',
  25. 'slug': 'provider-6',
  26. },
  27. ]
  28. bulk_update_data = {
  29. 'asn': 1234,
  30. }
  31. @classmethod
  32. def setUpTestData(cls):
  33. providers = (
  34. Provider(name='Provider 1', slug='provider-1'),
  35. Provider(name='Provider 2', slug='provider-2'),
  36. Provider(name='Provider 3', slug='provider-3'),
  37. )
  38. Provider.objects.bulk_create(providers)
  39. class CircuitTypeTest(APIViewTestCases.APIViewTestCase):
  40. model = CircuitType
  41. brief_fields = ['circuit_count', 'display', 'id', 'name', 'slug', 'url']
  42. create_data = (
  43. {
  44. 'name': 'Circuit Type 4',
  45. 'slug': 'circuit-type-4',
  46. },
  47. {
  48. 'name': 'Circuit Type 5',
  49. 'slug': 'circuit-type-5',
  50. },
  51. {
  52. 'name': 'Circuit Type 6',
  53. 'slug': 'circuit-type-6',
  54. },
  55. )
  56. bulk_update_data = {
  57. 'description': 'New description',
  58. }
  59. @classmethod
  60. def setUpTestData(cls):
  61. circuit_types = (
  62. CircuitType(name='Circuit Type 1', slug='circuit-type-1'),
  63. CircuitType(name='Circuit Type 2', slug='circuit-type-2'),
  64. CircuitType(name='Circuit Type 3', slug='circuit-type-3'),
  65. )
  66. CircuitType.objects.bulk_create(circuit_types)
  67. class CircuitTest(APIViewTestCases.APIViewTestCase):
  68. model = Circuit
  69. brief_fields = ['cid', 'display', 'id', 'url']
  70. bulk_update_data = {
  71. 'status': 'planned',
  72. }
  73. @classmethod
  74. def setUpTestData(cls):
  75. providers = (
  76. Provider(name='Provider 1', slug='provider-1'),
  77. Provider(name='Provider 2', slug='provider-2'),
  78. )
  79. Provider.objects.bulk_create(providers)
  80. circuit_types = (
  81. CircuitType(name='Circuit Type 1', slug='circuit-type-1'),
  82. CircuitType(name='Circuit Type 2', slug='circuit-type-2'),
  83. )
  84. CircuitType.objects.bulk_create(circuit_types)
  85. circuits = (
  86. Circuit(cid='Circuit 1', provider=providers[0], type=circuit_types[0]),
  87. Circuit(cid='Circuit 2', provider=providers[0], type=circuit_types[0]),
  88. Circuit(cid='Circuit 3', provider=providers[0], type=circuit_types[0]),
  89. )
  90. Circuit.objects.bulk_create(circuits)
  91. cls.create_data = [
  92. {
  93. 'cid': 'Circuit 4',
  94. 'provider': providers[1].pk,
  95. 'type': circuit_types[1].pk,
  96. },
  97. {
  98. 'cid': 'Circuit 5',
  99. 'provider': providers[1].pk,
  100. 'type': circuit_types[1].pk,
  101. },
  102. {
  103. 'cid': 'Circuit 6',
  104. 'provider': providers[1].pk,
  105. 'type': circuit_types[1].pk,
  106. },
  107. ]
  108. class CircuitTerminationTest(APIViewTestCases.APIViewTestCase):
  109. model = CircuitTermination
  110. brief_fields = ['_occupied', 'cable', 'circuit', 'display', 'id', 'term_side', 'url']
  111. @classmethod
  112. def setUpTestData(cls):
  113. SIDE_A = CircuitTerminationSideChoices.SIDE_A
  114. SIDE_Z = CircuitTerminationSideChoices.SIDE_Z
  115. sites = (
  116. Site(name='Site 1', slug='site-1'),
  117. Site(name='Site 2', slug='site-2'),
  118. )
  119. Site.objects.bulk_create(sites)
  120. provider = Provider.objects.create(name='Provider 1', slug='provider-1')
  121. circuit_type = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1')
  122. circuits = (
  123. Circuit(cid='Circuit 1', provider=provider, type=circuit_type),
  124. Circuit(cid='Circuit 2', provider=provider, type=circuit_type),
  125. Circuit(cid='Circuit 3', provider=provider, type=circuit_type),
  126. )
  127. Circuit.objects.bulk_create(circuits)
  128. circuit_terminations = (
  129. CircuitTermination(circuit=circuits[0], site=sites[0], term_side=SIDE_A),
  130. CircuitTermination(circuit=circuits[0], site=sites[1], term_side=SIDE_Z),
  131. CircuitTermination(circuit=circuits[1], site=sites[0], term_side=SIDE_A),
  132. CircuitTermination(circuit=circuits[1], site=sites[1], term_side=SIDE_Z),
  133. )
  134. CircuitTermination.objects.bulk_create(circuit_terminations)
  135. cls.create_data = [
  136. {
  137. 'circuit': circuits[2].pk,
  138. 'term_side': SIDE_A,
  139. 'site': sites[1].pk,
  140. 'port_speed': 200000,
  141. },
  142. {
  143. 'circuit': circuits[2].pk,
  144. 'term_side': SIDE_Z,
  145. 'site': sites[1].pk,
  146. 'port_speed': 200000,
  147. },
  148. ]
  149. cls.bulk_update_data = {
  150. 'port_speed': 123456
  151. }
  152. class ProviderNetworkTest(APIViewTestCases.APIViewTestCase):
  153. model = ProviderNetwork
  154. brief_fields = ['display', 'id', 'name', 'url']
  155. @classmethod
  156. def setUpTestData(cls):
  157. providers = (
  158. Provider(name='Provider 1', slug='provider-1'),
  159. Provider(name='Provider 2', slug='provider-2'),
  160. )
  161. Provider.objects.bulk_create(providers)
  162. provider_networks = (
  163. ProviderNetwork(name='Provider Network 1', provider=providers[0]),
  164. ProviderNetwork(name='Provider Network 2', provider=providers[0]),
  165. ProviderNetwork(name='Provider Network 3', provider=providers[0]),
  166. )
  167. ProviderNetwork.objects.bulk_create(provider_networks)
  168. cls.create_data = [
  169. {
  170. 'name': 'Provider Network 4',
  171. 'provider': providers[0].pk,
  172. },
  173. {
  174. 'name': 'Provider Network 5',
  175. 'provider': providers[0].pk,
  176. },
  177. {
  178. 'name': 'Provider Network 6',
  179. 'provider': providers[0].pk,
  180. },
  181. ]
  182. cls.bulk_update_data = {
  183. 'provider': providers[1].pk,
  184. 'description': 'New description',
  185. }