diff --git a/admin/tests.py b/admin/tests.py index 2db0d08..f174c26 100644 --- a/admin/tests.py +++ b/admin/tests.py @@ -1,8 +1,8 @@ -from django.test import TestCase from django.contrib.auth.models import User -from .urls import urlpatterns from django.shortcuts import reverse -from django.test import Client +from django.test import Client, TestCase + +from .urls import urlpatterns class AdminTestCase(TestCase): diff --git a/computes/tests.py b/computes/tests.py index 7ce503c..ca4cb4c 100644 --- a/computes/tests.py +++ b/computes/tests.py @@ -1,3 +1,83 @@ +from django.shortcuts import reverse from django.test import TestCase -# Create your tests here. +from .models import Compute + + +class ComputesTestCase(TestCase): + def setUp(self): + self.client.login(username='admin', password='admin') + Compute( + name='local', + hostname='localhost', + login='', + password='', + details='local', + type=4, + ).save() + + def test_index(self): + response = self.client.get(reverse('computes')) + self.assertEqual(response.status_code, 200) + + def test_overview(self): + response = self.client.get(reverse('overview', args=[1])) + self.assertEqual(response.status_code, 200) + + def test_graph(self): + response = self.client.get(reverse('compute_graph', args=[1])) + self.assertEqual(response.status_code, 200) + + def test_instances(self): + response = self.client.get(reverse('instances', args=[1])) + self.assertEqual(response.status_code, 200) + + def test_storages(self): + response = self.client.get(reverse('storages', args=[1])) + self.assertEqual(response.status_code, 200) + + def test_default_storage_volumes(self): + response = self.client.get(reverse('volumes', kwargs={'compute_id': 1, 'pool': 'default'})) + self.assertEqual(response.status_code, 200) + + def test_default_storage(self): + response = self.client.get(reverse('storage', kwargs={'compute_id': 1, 'pool': 'default'})) + self.assertEqual(response.status_code, 200) + + def test_networks(self): + response = self.client.get(reverse('networks', args=[1])) + self.assertEqual(response.status_code, 200) + + def test_default_network(self): + response = self.client.get(reverse('network', kwargs={'compute_id': 1, 'pool': 'default'})) + self.assertEqual(response.status_code, 200) + + def test_interfaces(self): + response = self.client.get(reverse('interfaces', args=[1])) + self.assertEqual(response.status_code, 200) + + # TODO: add test for single interface + + def test_nwfilters(self): + response = self.client.get(reverse('nwfilters', args=[1])) + self.assertEqual(response.status_code, 200) + + # TODO: add test for single nwfilter + + def test_secrets(self): + response = self.client.get(reverse('secrets', args=[1])) + self.assertEqual(response.status_code, 200) + + def test_create_instance_select_type(self): + response = self.client.get(reverse('create_instance_select_type', args=[1])) + self.assertEqual(response.status_code, 200) + + # TODO: create_instance + + def test_machines(self): + response = self.client.get(reverse('machines', kwargs={'compute_id': 1, 'arch': 'x86_64'})) + self.assertEqual(response.status_code, 200) + + # TODO: get_compute_disk_buses + + # TODO: domcaps diff --git a/computes/urls.py b/computes/urls.py index be5f09b..f4713fd 100644 --- a/computes/urls.py +++ b/computes/urls.py @@ -1,32 +1,41 @@ -from django.urls import path, re_path -from storages.views import storages, storage, get_volumes -from networks.views import networks, network from secrets.views import secrets + +from django.urls import path + +from . import views from create.views import create_instance, create_instance_select_type -from interfaces.views import interfaces, interface -from computes.views import overview, compute_graph, computes, get_compute_disk_buses, get_compute_machine_types, get_dom_capabilities from instances.views import instances +from interfaces.views import interface, interfaces +from networks.views import network, networks from nwfilters.views import nwfilter, nwfilters +from storages.views import get_volumes, storage, storages urlpatterns = [ - path('', computes, name='computes'), - re_path(r'^(?P[0-9]+)/$', overview, name='overview'), - re_path(r'^(?P[0-9]+)/statistics$', compute_graph, name='compute_graph'), - re_path(r'^(?P[0-9]+)/instances/$', instances, name='instances'), - re_path(r'^(?P[0-9]+)/storages/$', storages, name='storages'), - re_path(r'^(?P[0-9]+)/storage/(?P[\w\-\.\/]+)/volumes$', get_volumes, name='volumes'), - re_path(r'^(?P[0-9]+)/storage/(?P[\w\-\.\/]+)/$', storage, name='storage'), - re_path(r'^(?P[0-9]+)/networks/$', networks, name='networks'), - re_path(r'^(?P[0-9]+)/network/(?P[\w\-\.]+)/$', network, name='network'), - re_path(r'^(?P[0-9]+)/interfaces/$', interfaces, name='interfaces'), - re_path(r'^(?P[0-9]+)/interface/(?P[\w\-\.\:]+)/$', interface, name='interface'), - re_path(r'^(?P[0-9]+)/nwfilters/$', nwfilters, name='nwfilters'), - re_path(r'^(?P[0-9]+)/nwfilter/(?P[\w\-\.\:]+)/$', nwfilter, name='nwfilter'), - re_path(r'^(?P[0-9]+)/secrets/$', secrets, name='secrets'), - re_path(r'^(?P[0-9]+)/create/$', create_instance_select_type, name='create_instance_select_type'), - re_path(r'^(?P[0-9]+)/create/archs/(?P[\w\-\.\/]+)/machines/(?P[\w\-\.\/]+)$', create_instance, name='create_instance'), - re_path(r'^(?P[0-9]+)/archs/(?P[\w\-\.\/]+)/machines$', get_compute_machine_types, name='machines'), - re_path(r'^(?P[0-9]+)/archs/(?P[\w\-\.\/]+)/machines/(?P[\w\-\.\/]+)/disks/(?P[\w\-\.\/]+)/buses$', get_compute_disk_buses, name='buses'), - re_path(r'^(?P[0-9]+)/archs/(?P[\w\-\.\/]+)/machines/(?P[\w\-\.\/]+)/capabilities$', get_dom_capabilities, name='domcaps'), + path('', views.computes, name='computes'), + path('/', views.overview, name='overview'), + path('/statistics/', views.compute_graph, name='compute_graph'), + path('/instances/', instances, name='instances'), + path('/storages/', storages, name='storages'), + path('/storage//volumes/', get_volumes, name='volumes'), + path('/storage//', storage, name='storage'), + path('/networks/', networks, name='networks'), + path('/network//', network, name='network'), + path('/interfaces/', interfaces, name='interfaces'), + path('/interface//', interface, name='interface'), + path('/nwfilters/', nwfilters, name='nwfilters'), + path('/nwfilter//', nwfilter, name='nwfilter'), + path('/secrets/', secrets, name='secrets'), + path('/create/', create_instance_select_type, name='create_instance_select_type'), + path('/create/archs//machines//', create_instance, name='create_instance'), + path('/archs//machines/', views.get_compute_machine_types, name='machines'), + path( + '/archs//machines//disks//buses/', + views.get_compute_disk_buses, + name='buses', + ), + path( + '/archs//machines//capabilities/', + views.get_dom_capabilities, + name='domcaps', + ), ] -