test_views.py 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. from dcim.models import DeviceRole, Platform, Site
  2. from utilities.testing import StandardTestCases
  3. from virtualization.choices import *
  4. from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine
  5. class ClusterGroupTestCase(StandardTestCases.Views):
  6. model = ClusterGroup
  7. # Disable inapplicable tests
  8. test_get_object = None
  9. test_delete_object = None
  10. test_bulk_edit_objects = None
  11. @classmethod
  12. def setUpTestData(cls):
  13. ClusterGroup.objects.bulk_create([
  14. ClusterGroup(name='Cluster Group 1', slug='cluster-group-1'),
  15. ClusterGroup(name='Cluster Group 2', slug='cluster-group-2'),
  16. ClusterGroup(name='Cluster Group 3', slug='cluster-group-3'),
  17. ])
  18. cls.form_data = {
  19. 'name': 'Cluster Group X',
  20. 'slug': 'cluster-group-x',
  21. }
  22. cls.csv_data = (
  23. "name,slug",
  24. "Cluster Group 4,cluster-group-4",
  25. "Cluster Group 5,cluster-group-5",
  26. "Cluster Group 6,cluster-group-6",
  27. )
  28. class ClusterTypeTestCase(StandardTestCases.Views):
  29. model = ClusterType
  30. # Disable inapplicable tests
  31. test_get_object = None
  32. test_delete_object = None
  33. test_bulk_edit_objects = None
  34. @classmethod
  35. def setUpTestData(cls):
  36. ClusterType.objects.bulk_create([
  37. ClusterType(name='Cluster Type 1', slug='cluster-type-1'),
  38. ClusterType(name='Cluster Type 2', slug='cluster-type-2'),
  39. ClusterType(name='Cluster Type 3', slug='cluster-type-3'),
  40. ])
  41. cls.form_data = {
  42. 'name': 'Cluster Type X',
  43. 'slug': 'cluster-type-x',
  44. }
  45. cls.csv_data = (
  46. "name,slug",
  47. "Cluster Type 4,cluster-type-4",
  48. "Cluster Type 5,cluster-type-5",
  49. "Cluster Type 6,cluster-type-6",
  50. )
  51. class ClusterTestCase(StandardTestCases.Views):
  52. model = Cluster
  53. @classmethod
  54. def setUpTestData(cls):
  55. sites = (
  56. Site(name='Site 1', slug='site-1'),
  57. Site(name='Site 2', slug='site-2'),
  58. )
  59. Site.objects.bulk_create(sites)
  60. clustergroups = (
  61. ClusterGroup(name='Cluster Group 1', slug='cluster-group-1'),
  62. ClusterGroup(name='Cluster Group 2', slug='cluster-group-2'),
  63. )
  64. ClusterGroup.objects.bulk_create(clustergroups)
  65. clustertypes = (
  66. ClusterType(name='Cluster Type 1', slug='cluster-type-1'),
  67. ClusterType(name='Cluster Type 2', slug='cluster-type-2'),
  68. )
  69. ClusterType.objects.bulk_create(clustertypes)
  70. Cluster.objects.bulk_create([
  71. Cluster(name='Cluster 1', group=clustergroups[0], type=clustertypes[0], site=sites[0]),
  72. Cluster(name='Cluster 2', group=clustergroups[0], type=clustertypes[0], site=sites[0]),
  73. Cluster(name='Cluster 3', group=clustergroups[0], type=clustertypes[0], site=sites[0]),
  74. ])
  75. cls.form_data = {
  76. 'name': 'Cluster X',
  77. 'group': clustergroups[1].pk,
  78. 'type': clustertypes[1].pk,
  79. 'tenant': None,
  80. 'site': sites[1].pk,
  81. 'comments': 'Some comments',
  82. 'tags': 'Alpha,Bravo,Charlie',
  83. }
  84. cls.csv_data = (
  85. "name,type",
  86. "Cluster 4,Cluster Type 1",
  87. "Cluster 5,Cluster Type 1",
  88. "Cluster 6,Cluster Type 1",
  89. )
  90. cls.bulk_edit_data = {
  91. 'group': clustergroups[1].pk,
  92. 'type': clustertypes[1].pk,
  93. 'tenant': None,
  94. 'site': sites[1].pk,
  95. 'comments': 'New comments',
  96. }
  97. class VirtualMachineTestCase(StandardTestCases.Views):
  98. model = VirtualMachine
  99. @classmethod
  100. def setUpTestData(cls):
  101. deviceroles = (
  102. DeviceRole(name='Device Role 1', slug='device-role-1'),
  103. DeviceRole(name='Device Role 2', slug='device-role-2'),
  104. )
  105. DeviceRole.objects.bulk_create(deviceroles)
  106. platforms = (
  107. Platform(name='Platform 1', slug='platform-1'),
  108. Platform(name='Platform 2', slug='platform-2'),
  109. )
  110. Platform.objects.bulk_create(platforms)
  111. clustertype = ClusterType.objects.create(name='Cluster Type 1', slug='cluster-type-1')
  112. clusters = (
  113. Cluster(name='Cluster 1', type=clustertype),
  114. Cluster(name='Cluster 2', type=clustertype),
  115. )
  116. Cluster.objects.bulk_create(clusters)
  117. VirtualMachine.objects.bulk_create([
  118. VirtualMachine(name='Virtual Machine 1', cluster=clusters[0], role=deviceroles[0], platform=platforms[0]),
  119. VirtualMachine(name='Virtual Machine 2', cluster=clusters[0], role=deviceroles[0], platform=platforms[0]),
  120. VirtualMachine(name='Virtual Machine 3', cluster=clusters[0], role=deviceroles[0], platform=platforms[0]),
  121. ])
  122. cls.form_data = {
  123. 'cluster': clusters[1].pk,
  124. 'tenant': None,
  125. 'platform': platforms[1].pk,
  126. 'name': 'Virtual Machine X',
  127. 'status': VirtualMachineStatusChoices.STATUS_STAGED,
  128. 'role': deviceroles[1].pk,
  129. 'primary_ip4': None,
  130. 'primary_ip6': None,
  131. 'vcpus': 4,
  132. 'memory': 32768,
  133. 'disk': 4000,
  134. 'comments': 'Some comments',
  135. 'tags': 'Alpha,Bravo,Charlie',
  136. 'local_context_data': None,
  137. }
  138. cls.csv_data = (
  139. "name,cluster",
  140. "Virtual Machine 4,Cluster 1",
  141. "Virtual Machine 5,Cluster 1",
  142. "Virtual Machine 6,Cluster 1",
  143. )
  144. cls.bulk_edit_data = {
  145. 'cluster': clusters[1].pk,
  146. 'tenant': None,
  147. 'platform': platforms[1].pk,
  148. 'status': VirtualMachineStatusChoices.STATUS_STAGED,
  149. 'role': deviceroles[1].pk,
  150. 'vcpus': 8,
  151. 'memory': 65535,
  152. 'disk': 8000,
  153. 'comments': 'New comments',
  154. }