mirror of
https://github.com/retspen/webvirtcloud
synced 2026-10-18 00:50:07 +00:00
fix(tests): decouple tests from local libvirt, support configurable test host, and fix URL/logging bugs
This commit is contained in:
parent
c31ed28042
commit
60565b05b3
6 changed files with 153 additions and 130 deletions
|
|
@ -1,21 +1,47 @@
|
|||
import os
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.shortcuts import reverse
|
||||
from django.test import TestCase
|
||||
|
||||
from vrtManager.connection import CONN_SOCKET, connection_manager
|
||||
from .models import Compute
|
||||
|
||||
TEST_COMPUTE_HOST = os.environ.get("TEST_LIBVIRT_HOST", "localhost")
|
||||
TEST_COMPUTE_LOGIN = os.environ.get("TEST_LIBVIRT_LOGIN", "")
|
||||
TEST_COMPUTE_PASSWORD = os.environ.get("TEST_LIBVIRT_PASSWORD", "")
|
||||
TEST_COMPUTE_TYPE = int(os.environ.get("TEST_LIBVIRT_TYPE", CONN_SOCKET))
|
||||
|
||||
|
||||
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()
|
||||
self.compute, _ = Compute.objects.get_or_create(
|
||||
name="computes-test-compute",
|
||||
defaults={
|
||||
"hostname": TEST_COMPUTE_HOST,
|
||||
"login": TEST_COMPUTE_LOGIN,
|
||||
"password": TEST_COMPUTE_PASSWORD,
|
||||
"details": "test",
|
||||
"type": TEST_COMPUTE_TYPE,
|
||||
},
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
Compute.objects.filter(name="computes-test-compute").delete()
|
||||
super().tearDown()
|
||||
|
||||
def _require_live_compute(self):
|
||||
try:
|
||||
conn = connection_manager.get_connection(
|
||||
self.compute.hostname,
|
||||
self.compute.login,
|
||||
self.compute.password,
|
||||
self.compute.type,
|
||||
)
|
||||
if not (conn and conn.isAlive()):
|
||||
self.skipTest("Live libvirt compute host not available")
|
||||
except Exception:
|
||||
self.skipTest("Live libvirt compute host not available")
|
||||
|
||||
def test_index(self):
|
||||
response = self.client.get(reverse("computes"))
|
||||
|
|
@ -36,15 +62,16 @@ class ComputesTestCase(TestCase):
|
|||
)
|
||||
self.assertRedirects(response, reverse("computes"))
|
||||
|
||||
compute = Compute.objects.get(pk=2)
|
||||
compute = Compute.objects.get(name="l1")
|
||||
self.assertEqual(compute.name, "l1")
|
||||
self.assertEqual(compute.details, "Created")
|
||||
created_id = compute.id
|
||||
|
||||
response = self.client.get(reverse("compute_update", args=[2]))
|
||||
response = self.client.get(reverse("compute_update", args=[created_id]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
response = self.client.post(
|
||||
reverse("compute_update", args=[2]),
|
||||
reverse("compute_update", args=[created_id]),
|
||||
{
|
||||
"name": "l2",
|
||||
"details": "Updated",
|
||||
|
|
@ -54,94 +81,94 @@ class ComputesTestCase(TestCase):
|
|||
)
|
||||
self.assertRedirects(response, reverse("computes"))
|
||||
|
||||
compute = Compute.objects.get(pk=2)
|
||||
compute = Compute.objects.get(id=created_id)
|
||||
self.assertEqual(compute.name, "l2")
|
||||
self.assertEqual(compute.details, "Updated")
|
||||
|
||||
response = self.client.get(reverse("compute_delete", args=[2]))
|
||||
response = self.client.get(reverse("compute_delete", args=[created_id]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
response = self.client.post(reverse("compute_delete", args=[2]))
|
||||
response = self.client.post(reverse("compute_delete", args=[created_id]))
|
||||
self.assertRedirects(response, reverse("computes"))
|
||||
|
||||
with self.assertRaises(ObjectDoesNotExist):
|
||||
Compute.objects.get(id=2)
|
||||
Compute.objects.get(id=created_id)
|
||||
|
||||
def test_overview(self):
|
||||
response = self.client.get(reverse("overview", args=[1]))
|
||||
self._require_live_compute()
|
||||
response = self.client.get(reverse("overview", args=[self.compute.id]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_graph(self):
|
||||
response = self.client.get(reverse("compute_graph", args=[1]))
|
||||
self._require_live_compute()
|
||||
response = self.client.get(reverse("compute_graph", args=[self.compute.id]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_instances(self):
|
||||
response = self.client.get(reverse("instances", args=[1]))
|
||||
self._require_live_compute()
|
||||
response = self.client.get(reverse("instances", args=[self.compute.id]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_storages(self):
|
||||
response = self.client.get(reverse("storages", args=[1]))
|
||||
self._require_live_compute()
|
||||
response = self.client.get(reverse("storages", args=[self.compute.id]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_storage(self):
|
||||
pass
|
||||
|
||||
def test_default_storage_volumes(self):
|
||||
self._require_live_compute()
|
||||
response = self.client.get(
|
||||
reverse("volumes", kwargs={"compute_id": 1, "pool": "default"})
|
||||
reverse("volumes", kwargs={"compute_id": self.compute.id, "pool": "default"})
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_default_storage(self):
|
||||
self._require_live_compute()
|
||||
response = self.client.get(
|
||||
reverse("storage", kwargs={"compute_id": 1, "pool": "default"})
|
||||
reverse("storage", kwargs={"compute_id": self.compute.id, "pool": "default"})
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_networks(self):
|
||||
response = self.client.get(reverse("networks", args=[1]))
|
||||
self._require_live_compute()
|
||||
response = self.client.get(reverse("networks", args=[self.compute.id]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_default_network(self):
|
||||
self._require_live_compute()
|
||||
response = self.client.get(
|
||||
reverse("network", kwargs={"compute_id": 1, "pool": "default"})
|
||||
reverse("network", kwargs={"compute_id": self.compute.id, "pool": "default"})
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_interfaces(self):
|
||||
response = self.client.get(reverse("interfaces", args=[1]))
|
||||
self._require_live_compute()
|
||||
response = self.client.get(reverse("interfaces", args=[self.compute.id]))
|
||||
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._require_live_compute()
|
||||
response = self.client.get(reverse("nwfilters", args=[self.compute.id]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# TODO: add test for single nwfilter
|
||||
|
||||
def test_secrets(self):
|
||||
response = self.client.get(reverse("virtsecrets", args=[1]))
|
||||
self._require_live_compute()
|
||||
response = self.client.get(reverse("virtsecrets", args=[self.compute.id]))
|
||||
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):
|
||||
self._require_live_compute()
|
||||
response = self.client.get(
|
||||
reverse("machines", kwargs={"compute_id": 1, "arch": "x86_64"})
|
||||
reverse("machines", kwargs={"compute_id": self.compute.id, "arch": "x86_64"})
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_compute_disk_buses(self):
|
||||
self._require_live_compute()
|
||||
response = self.client.get(
|
||||
reverse(
|
||||
"buses",
|
||||
kwargs={
|
||||
"compute_id": 1,
|
||||
"compute_id": self.compute.id,
|
||||
"arch": "x86_64",
|
||||
"machine": "pc",
|
||||
"disk": "disk",
|
||||
|
|
@ -151,9 +178,10 @@ class ComputesTestCase(TestCase):
|
|||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_dom_capabilities(self):
|
||||
self._require_live_compute()
|
||||
response = self.client.get(
|
||||
reverse(
|
||||
"domcaps", kwargs={"compute_id": 1, "arch": "x86_64", "machine": "pc"}
|
||||
"domcaps", kwargs={"compute_id": self.compute.id, "arch": "x86_64", "machine": "pc"}
|
||||
)
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue