Change in vdsm[master]: virt: recovery: tests: exercise more recovery code

fromani at redhat.com fromani at redhat.com
Thu Feb 18 08:47:45 UTC 2016


Francesco Romani has uploaded a new change for review.

Change subject: virt: recovery: tests: exercise more recovery code
......................................................................

virt: recovery: tests: exercise more recovery code

Add more tests for the new recovery.py module.
We exercise existing functions and methods.

Change-Id: Ieaf829c5f306a576c2bf5b8776bb5c0784ca3ca1
Signed-off-by: Francesco Romani <fromani at redhat.com>
---
M tests/vmRecoveryTests.py
1 file changed, 43 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/90/53690/1

diff --git a/tests/vmRecoveryTests.py b/tests/vmRecoveryTests.py
index 174119e..862831b 100644
--- a/tests/vmRecoveryTests.py
+++ b/tests/vmRecoveryTests.py
@@ -70,10 +70,31 @@
 
                 loaded = recovery.File(testvm.id)
                 fakecif = fake.ClientIF()
-                loaded.load(fakecif)
+                res = loaded.load(fakecif)
+                self.assertTrue(res)
 
                 self.assertVmStatus(testvm,
                                     fakecif.vmRequests[testvm.id][0])
+
+    def test_load_with_create_failure(self):
+
+        with fake.VM() as testvm, namedTemporaryDir() as tmpdir:
+            with MonkeyPatchScope([(constants, 'P_VDSM_RUN', tmpdir + '/')]):
+                stored = recovery.File(testvm.id)
+                stored.save(testvm)
+
+                loaded = recovery.File(testvm.id)
+                fakecif = fake.ClientIF()
+
+                def create_fail(*args):
+                    raise RuntimeError("fake error")
+
+                fakecif.createVm = create_fail
+                res  = loaded.load(fakecif)
+
+                self.assertFalse(res)
+                self.assertEqual(fakecif.vmContainer, {})
+                self.assertEqual(fakecif.vmRequests, {})
 
     def test_cleanup(self):
 
@@ -152,3 +173,24 @@
         with MonkeyPatchScope([(recovery, '_list_domains',
                                 lambda: self._getAllDomains('novdsm'))]):
             self.assertFalse(recovery._get_vdsm_domains())
+
+
+    def test_clean_vm_files(self):
+
+        with fake.VM() as testvm, namedTemporaryDir() as tmpdir:
+            with MonkeyPatchScope([(constants, 'P_VDSM_RUN', tmpdir + '/')]):
+                stored = recovery.File(testvm.id)
+                stored.save(testvm)
+
+                loaded = recovery.File(testvm.id)
+                fakecif = fake.ClientIF()
+                loaded.load(fakecif)
+
+                # we have one recovery file (just created)
+                self.assertEqual(len(os.listdir(tmpdir)), 1)
+                # ...but somehow ClientIF failed to create the VM.
+                self.assertEqual(fakecif.vmContainer, {})
+
+                # ... so we can actually do our test.
+                recovery.clean_vm_files(fakecif)
+                self.assertEqual(os.listdir(tmpdir), [])


-- 
To view, visit https://gerrit.ovirt.org/53690
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ieaf829c5f306a576c2bf5b8776bb5c0784ca3ca1
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani at redhat.com>


More information about the vdsm-patches mailing list