Change in vdsm[master]: virt: recovery: tests: reduce nested `with' blocks

fromani at redhat.com fromani at redhat.com
Fri Feb 19 09:24:34 UTC 2016


Francesco Romani has uploaded a new change for review.

Change subject: virt: recovery: tests: reduce nested `with' blocks
......................................................................

virt: recovery: tests: reduce nested `with' blocks

Add test helper to reduce the boilerplate.

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


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/39/53739/1

diff --git a/tests/vmRecoveryTests.py b/tests/vmRecoveryTests.py
index 174119e..7bf8945 100644
--- a/tests/vmRecoveryTests.py
+++ b/tests/vmRecoveryTests.py
@@ -18,6 +18,7 @@
 # Refer to the README and COPYING files for full details of the license
 #
 
+import contextlib
 import os
 
 from virt import recovery
@@ -40,64 +41,60 @@
 
     def test_save(self):
 
-        with fake.VM() as testvm, namedTemporaryDir() as tmpdir:
-            with MonkeyPatchScope([(constants, 'P_VDSM_RUN', tmpdir + '/')]):
-                rec = recovery.File(testvm.id)
-                rec.save(testvm)
+        with self.setup_env() as (testvm, tmpdir):
+            rec = recovery.File(testvm.id)
+            rec.save(testvm)
 
-                with open(os.path.join(tmpdir, rec.name), 'rb') as f:
-                    self.assertTrue(pickle.load(f))
+            with open(os.path.join(tmpdir, rec.name), 'rb') as f:
+                self.assertTrue(pickle.load(f))
 
     def test_save_after_cleanup(self):
 
-        with fake.VM() as testvm, namedTemporaryDir() as tmpdir:
-            with MonkeyPatchScope([(constants, 'P_VDSM_RUN', tmpdir + '/')]):
-                rec = recovery.File(testvm.id)
-                rec.save(testvm)
+        with self.setup_env() as (testvm, tmpdir):
+            rec = recovery.File(testvm.id)
+            rec.save(testvm)
 
-                rec.cleanup()
-                self.assertEqual(os.listdir(tmpdir), [])
+            rec.cleanup()
+            self.assertEqual(os.listdir(tmpdir), [])
 
-                rec.save(testvm)  # must silently fail
-                self.assertEqual(os.listdir(tmpdir), [])
+            rec.save(testvm)  # must silently fail
+            self.assertEqual(os.listdir(tmpdir), [])
 
     def test_load(self):
 
-        with fake.VM() as testvm, namedTemporaryDir() as tmpdir:
-            with MonkeyPatchScope([(constants, 'P_VDSM_RUN', tmpdir + '/')]):
-                stored = recovery.File(testvm.id)
-                stored.save(testvm)
+        with self.setup_env() as (testvm, tmpdir):
+            stored = recovery.File(testvm.id)
+            stored.save(testvm)
 
-                loaded = recovery.File(testvm.id)
-                fakecif = fake.ClientIF()
-                loaded.load(fakecif)
+            loaded = recovery.File(testvm.id)
+            fakecif = fake.ClientIF()
+            res = loaded.load(fakecif)
+            self.assertTrue(res)
 
-                self.assertVmStatus(testvm,
-                                    fakecif.vmRequests[testvm.id][0])
+            self.assertVmStatus(testvm, fakecif.vmRequests[testvm.id][0])
 
     def test_cleanup(self):
 
-        with fake.VM() as testvm, namedTemporaryDir() as tmpdir:
-            with MonkeyPatchScope([(constants, 'P_VDSM_RUN', tmpdir + '/')]):
-                stored = recovery.File(testvm.id)
-                stored.save(testvm)
+        with self.setup_env() as (testvm, tmpdir):
+            stored = recovery.File(testvm.id)
+            stored.save(testvm)
 
-                self.assertEqual(len(os.listdir(tmpdir)), 1)
-                stored.cleanup()
-                self.assertEqual(len(os.listdir(tmpdir)), 0)
+            self.assertEqual(len(os.listdir(tmpdir)), 1)
+            stored.cleanup()
+            self.assertEqual(len(os.listdir(tmpdir)), 0)
 
     def test_name(self):
-        with fake.VM() as testvm, namedTemporaryDir() as tmpDir:
-            with MonkeyPatchScope([(constants, 'P_VDSM_RUN', tmpDir + '/')]):
-                state = recovery.File(testvm.id)
-                self.assertIn(testvm.id, state.name)
-                self.assertTrue(state.name.endswith(recovery.File.EXTENSION))
+
+        with self.setup_env() as (testvm, tmpdir):
+            state = recovery.File(testvm.id)
+            self.assertIn(testvm.id, state.name)
+            self.assertTrue(state.name.endswith(recovery.File.EXTENSION))
 
     def test_vmid(self):
-        with fake.VM() as testvm, namedTemporaryDir() as tmpDir:
-            with MonkeyPatchScope([(constants, 'P_VDSM_RUN', tmpDir + '/')]):
-                state = recovery.File(testvm.id)
-                self.assertEqual(testvm.id, state.vmid)
+
+        with self.setup_env() as (testvm, tmpdir):
+            state = recovery.File(testvm.id)
+            self.assertEqual(testvm.id, state.vmid)
 
     def assertVmStatus(self, testvm, params):
         status = testvm.status()
@@ -111,6 +108,12 @@
             msg = 'item %s status=%s params=%s' % (key, expected, recovered)
             self.assertEqual(recovered, expected, msg)
 
+    @contextlib.contextmanager
+    def setup_env(self):
+        with fake.VM() as testvm, namedTemporaryDir() as tmpdir:
+            with MonkeyPatchScope([(constants, 'P_VDSM_RUN', tmpdir + '/')]):
+                yield testvm, tmpdir
+
 
 @expandPermutations
 class RecoveryFunctionsTests(TestCaseBase):


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifd82323148074f5c3c031b0fa4c64c684c81c73b
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