From c7e3adf5ff685908d6cbbc352ac328cea172e450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Date: Tue, 6 Oct 2020 11:01:42 +0100 Subject: [PATCH] tests: start basic unit tests for more APIs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To prevent regressions, especially with generated code, we need to have test coverage of more APIs. This starts off with coverage for object creation for all object types supported by the test driver currently. This exercises constructors which have been broken several times in the past. Related https://gitlab.com/libvirt/libvirt-python/-/issues/4 Signed-off-by: Daniel P. Berrangé (cherry picked from commit 1f441675108ef5e7566e84b546339a1d1ee9af4c) Signed-off-by: Erik Skultety --- tests/test_domain.py | 6 ++++++ tests/test_domain_checkpoint.py | 18 ++++++++++++++++++ tests/test_domain_snapshot.py | 16 ++++++++++++++++ tests/test_interface.py | 15 +++++++++++++++ tests/test_network.py | 15 +++++++++++++++ tests/test_nodedev.py | 15 +++++++++++++++ tests/test_storage.py | 24 ++++++++++++++++++++++++ 7 files changed, 109 insertions(+) create mode 100644 tests/test_domain_checkpoint.py create mode 100644 tests/test_domain_snapshot.py create mode 100644 tests/test_interface.py create mode 100644 tests/test_network.py create mode 100644 tests/test_nodedev.py create mode 100644 tests/test_storage.py diff --git a/tests/test_domain.py b/tests/test_domain.py index 2b3710b..17fd7b3 100644 --- a/tests/test_domain.py +++ b/tests/test_domain.py @@ -17,3 +17,9 @@ class TestLibvirtDomain(unittest.TestCase): self.assertTrue("weight" in params) params["weight"] = 100 self.dom.setSchedulerParameters(params) + + @unittest.skipIf(libvirt.getVersion() == 4000000, + "test driver screenshot broken in 4.0.0") + def testScreenshot(self): + stream = self.conn.newStream() + ss = self.dom.screenshot(stream, 0, 0) diff --git a/tests/test_domain_checkpoint.py b/tests/test_domain_checkpoint.py new file mode 100644 index 0000000..97cbde6 --- /dev/null +++ b/tests/test_domain_checkpoint.py @@ -0,0 +1,18 @@ +import unittest +import libvirt + + +class TestLibvirtDomainCheckpoint(unittest.TestCase): + def setUp(self): + self.conn = libvirt.open("test:///default") + self.dom = self.conn.lookupByName("test") + + def tearDown(self): + self.dom = None + self.conn = None + + @unittest.skipUnless(hasattr(libvirt.virDomain, "checkpointCreateXML"), + "checkpoints not supported in this libvirt") + def testCheckpointCreate(self): + cp = self.dom.checkpointCreateXML("") + cp.delete() diff --git a/tests/test_domain_snapshot.py b/tests/test_domain_snapshot.py new file mode 100644 index 0000000..a90833e --- /dev/null +++ b/tests/test_domain_snapshot.py @@ -0,0 +1,16 @@ +import unittest +import libvirt + + +class TestLibvirtDomainSnapshot(unittest.TestCase): + def setUp(self): + self.conn = libvirt.open("test:///default") + self.dom = self.conn.lookupByName("test") + + def tearDown(self): + self.dom = None + self.conn = None + + def testSnapCreate(self): + snap = self.dom.snapshotCreateXML("") + snap.delete() diff --git a/tests/test_interface.py b/tests/test_interface.py new file mode 100644 index 0000000..2d7f7ec --- /dev/null +++ b/tests/test_interface.py @@ -0,0 +1,15 @@ +import unittest +import libvirt + + +class TestLibvirtInterface(unittest.TestCase): + def setUp(self): + self.conn = libvirt.open("test:///default") + self.iface = self.conn.interfaceLookupByName("eth1") + + def tearDown(self): + self.iface = None + self.conn = None + + def testAttr(self): + self.assertEqual(self.iface.name(), "eth1") diff --git a/tests/test_network.py b/tests/test_network.py new file mode 100644 index 0000000..3d47f35 --- /dev/null +++ b/tests/test_network.py @@ -0,0 +1,15 @@ +import unittest +import libvirt + + +class TestLibvirtNetwork(unittest.TestCase): + def setUp(self): + self.conn = libvirt.open("test:///default") + self.net = self.conn.networkLookupByName("default") + + def tearDown(self): + self.net = None + self.conn = None + + def testAttr(self): + self.assertEqual(self.net.name(), "default") diff --git a/tests/test_nodedev.py b/tests/test_nodedev.py new file mode 100644 index 0000000..7cf1274 --- /dev/null +++ b/tests/test_nodedev.py @@ -0,0 +1,15 @@ +import unittest +import libvirt + + +class TestLibvirtNodeDev(unittest.TestCase): + def setUp(self): + self.conn = libvirt.open("test:///default") + self.nodedev = self.conn.nodeDeviceLookupByName("computer") + + def tearDown(self): + self.nodedev = None + self.conn = None + + def testAttr(self): + self.assertEqual(self.nodedev.name(), "computer") diff --git a/tests/test_storage.py b/tests/test_storage.py new file mode 100644 index 0000000..ba20e53 --- /dev/null +++ b/tests/test_storage.py @@ -0,0 +1,24 @@ +import unittest +import libvirt + + +class TestLibvirtStorage(unittest.TestCase): + def setUp(self): + self.conn = libvirt.open("test:///default") + self.pool = self.conn.storagePoolLookupByName("default-pool") + + def tearDown(self): + self.pool = None + self.conn = None + + def testAttr(self): + self.assertEqual(self.pool.name(), "default-pool") + + def testVol(self): + volxml = ''' + raw.img + 10 + 1000 +''' + + vol = self.pool.createXML(volxml)