Convert virtualization view tests to use StandardTestCases

This commit is contained in:
Jeremy Stretch 2020-01-31 15:57:33 -05:00
parent 5517145ae3
commit e50eab2342

View File

@ -1,15 +1,15 @@
import urllib.parse from dcim.models import DeviceRole, Platform, Site
from utilities.testing import StandardTestCases
from django.urls import reverse from virtualization.choices import *
from utilities.testing import TestCase
from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine
class ClusterGroupTestCase(TestCase): class ClusterGroupTestCase(StandardTestCases.Views):
user_permissions = ( model = ClusterGroup
'virtualization.view_clustergroup',
) # Disable inapplicable tests
test_get_object = None
test_delete_object = None
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -20,33 +20,25 @@ class ClusterGroupTestCase(TestCase):
ClusterGroup(name='Cluster Group 3', slug='cluster-group-3'), ClusterGroup(name='Cluster Group 3', slug='cluster-group-3'),
]) ])
def test_clustergroup_list(self): cls.form_data = {
'name': 'Cluster Group X',
'slug': 'cluster-group-x',
}
url = reverse('virtualization:clustergroup_list') cls.csv_data = (
response = self.client.get(url)
self.assertHttpStatus(response, 200)
def test_clustergroup_import(self):
self.add_permissions('virtualization.add_clustergroup')
csv_data = (
"name,slug", "name,slug",
"Cluster Group 4,cluster-group-4", "Cluster Group 4,cluster-group-4",
"Cluster Group 5,cluster-group-5", "Cluster Group 5,cluster-group-5",
"Cluster Group 6,cluster-group-6", "Cluster Group 6,cluster-group-6",
) )
response = self.client.post(reverse('virtualization:clustergroup_import'), {'csv': '\n'.join(csv_data)})
self.assertHttpStatus(response, 200) class ClusterTypeTestCase(StandardTestCases.Views):
self.assertEqual(ClusterGroup.objects.count(), 6) model = ClusterType
# Disable inapplicable tests
class ClusterTypeTestCase(TestCase): test_get_object = None
user_permissions = ( test_delete_object = None
'virtualization.view_clustertype',
)
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -57,42 +49,28 @@ class ClusterTypeTestCase(TestCase):
ClusterType(name='Cluster Type 3', slug='cluster-type-3'), ClusterType(name='Cluster Type 3', slug='cluster-type-3'),
]) ])
def test_clustertype_list(self): cls.form_data = {
'name': 'Cluster Type X',
'slug': 'cluster-type-x',
}
url = reverse('virtualization:clustertype_list') cls.csv_data = (
response = self.client.get(url)
self.assertHttpStatus(response, 200)
def test_clustertype_import(self):
self.add_permissions('virtualization.add_clustertype')
csv_data = (
"name,slug", "name,slug",
"Cluster Type 4,cluster-type-4", "Cluster Type 4,cluster-type-4",
"Cluster Type 5,cluster-type-5", "Cluster Type 5,cluster-type-5",
"Cluster Type 6,cluster-type-6", "Cluster Type 6,cluster-type-6",
) )
response = self.client.post(reverse('virtualization:clustertype_import'), {'csv': '\n'.join(csv_data)})
self.assertHttpStatus(response, 200) class ClusterTestCase(StandardTestCases.Views):
self.assertEqual(ClusterType.objects.count(), 6) model = Cluster
class ClusterTestCase(TestCase):
user_permissions = (
'virtualization.view_cluster',
)
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
clustergroup = ClusterGroup(name='Cluster Group 1', slug='cluster-group-1') site = Site.objects.create(name='Site 1', slug='site-1')
clustergroup.save() clustergroup = ClusterGroup.objects.create(name='Cluster Group 1', slug='cluster-group-1')
clustertype = ClusterType.objects.create(name='Cluster Type 1', slug='cluster-type-1')
clustertype = ClusterType(name='Cluster Type 1', slug='cluster-type-1')
clustertype.save()
Cluster.objects.bulk_create([ Cluster.objects.bulk_create([
Cluster(name='Cluster 1', group=clustergroup, type=clustertype), Cluster(name='Cluster 1', group=clustergroup, type=clustertype),
@ -100,52 +78,34 @@ class ClusterTestCase(TestCase):
Cluster(name='Cluster 3', group=clustergroup, type=clustertype), Cluster(name='Cluster 3', group=clustergroup, type=clustertype),
]) ])
def test_cluster_list(self): cls.form_data = {
'name': 'Cluster X',
url = reverse('virtualization:cluster_list') 'group': clustergroup.pk,
params = { 'type': clustertype.pk,
"group": ClusterGroup.objects.first().slug, 'tenant': None,
"type": ClusterType.objects.first().slug, 'site': site.pk,
'comments': 'Some comments',
'tags': 'Alpha,Bravo,Charlie',
} }
response = self.client.get('{}?{}'.format(url, urllib.parse.urlencode(params))) cls.csv_data = (
self.assertHttpStatus(response, 200)
def test_cluster(self):
cluster = Cluster.objects.first()
response = self.client.get(cluster.get_absolute_url())
self.assertHttpStatus(response, 200)
def test_cluster_import(self):
self.add_permissions('virtualization.add_cluster')
csv_data = (
"name,type", "name,type",
"Cluster 4,Cluster Type 1", "Cluster 4,Cluster Type 1",
"Cluster 5,Cluster Type 1", "Cluster 5,Cluster Type 1",
"Cluster 6,Cluster Type 1", "Cluster 6,Cluster Type 1",
) )
response = self.client.post(reverse('virtualization:cluster_import'), {'csv': '\n'.join(csv_data)})
self.assertHttpStatus(response, 200) class VirtualMachineTestCase(StandardTestCases.Views):
self.assertEqual(Cluster.objects.count(), 6) model = VirtualMachine
class VirtualMachineTestCase(TestCase):
user_permissions = (
'virtualization.view_virtualmachine',
)
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
clustertype = ClusterType(name='Cluster Type 1', slug='cluster-type-1') devicerole = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
clustertype.save() platform = Platform.objects.create(name='Platform 1', slug='platform-1')
clustertype = ClusterType.objects.create(name='Cluster Type 1', slug='cluster-type-1')
cluster = Cluster(name='Cluster 1', type=clustertype) cluster = Cluster.objects.create(name='Cluster 1', type=clustertype)
cluster.save()
VirtualMachine.objects.bulk_create([ VirtualMachine.objects.bulk_create([
VirtualMachine(name='Virtual Machine 1', cluster=cluster), VirtualMachine(name='Virtual Machine 1', cluster=cluster),
@ -153,33 +113,26 @@ class VirtualMachineTestCase(TestCase):
VirtualMachine(name='Virtual Machine 3', cluster=cluster), VirtualMachine(name='Virtual Machine 3', cluster=cluster),
]) ])
def test_virtualmachine_list(self): cls.form_data = {
'cluster': cluster.pk,
url = reverse('virtualization:virtualmachine_list') 'tenant': None,
params = { 'platform': None,
"cluster_id": Cluster.objects.first().pk, 'name': 'Virtual Machine X',
'status': VirtualMachineStatusChoices.STATUS_STAGED,
'role': devicerole.pk,
'primary_ip4': None,
'primary_ip6': None,
'vcpus': 4,
'memory': 32768,
'disk': 4000,
'comments': 'Some comments',
'tags': 'Alpha,Bravo,Charlie',
'local_context_data': None,
} }
response = self.client.get('{}?{}'.format(url, urllib.parse.urlencode(params))) cls.csv_data = (
self.assertHttpStatus(response, 200)
def test_virtualmachine(self):
virtualmachine = VirtualMachine.objects.first()
response = self.client.get(virtualmachine.get_absolute_url())
self.assertHttpStatus(response, 200)
def test_virtualmachine_import(self):
self.add_permissions('virtualization.add_virtualmachine')
csv_data = (
"name,cluster", "name,cluster",
"Virtual Machine 4,Cluster 1", "Virtual Machine 4,Cluster 1",
"Virtual Machine 5,Cluster 1", "Virtual Machine 5,Cluster 1",
"Virtual Machine 6,Cluster 1", "Virtual Machine 6,Cluster 1",
) )
response = self.client.post(reverse('virtualization:virtualmachine_import'), {'csv': '\n'.join(csv_data)})
self.assertHttpStatus(response, 200)
self.assertEqual(VirtualMachine.objects.count(), 6)