tests: fix asyncio usage in some tests
This commit is contained in:
parent
ba2b034843
commit
75394a1348
@ -867,7 +867,7 @@ class SystemTestCase(QubesTestCase):
|
|||||||
while timeout > 0:
|
while timeout > 0:
|
||||||
if not vm.is_running():
|
if not vm.is_running():
|
||||||
return
|
return
|
||||||
time.sleep(1)
|
self.loop.run_until_complete(asyncio.sleep(1))
|
||||||
timeout -= 1
|
timeout -= 1
|
||||||
self.fail("Timeout while waiting for VM {} shutdown".format(vm.name))
|
self.fail("Timeout while waiting for VM {} shutdown".format(vm.name))
|
||||||
|
|
||||||
|
@ -60,10 +60,10 @@ class TC_00_Basic(qubes.tests.SystemTestCase):
|
|||||||
self.assertIsNotNone(vm)
|
self.assertIsNotNone(vm)
|
||||||
self.assertEqual(vm.name, vmname)
|
self.assertEqual(vm.name, vmname)
|
||||||
self.assertEqual(vm.template, self.app.default_template)
|
self.assertEqual(vm.template, self.app.default_template)
|
||||||
vm.create_on_disk()
|
self.loop.run_until_complete(vm.create_on_disk())
|
||||||
|
|
||||||
with self.assertNotRaises(qubes.exc.QubesException):
|
with self.assertNotRaises(qubes.exc.QubesException):
|
||||||
vm.storage.verify()
|
self.loop.run_until_complete(vm.storage.verify())
|
||||||
|
|
||||||
|
|
||||||
class TC_01_Properties(qubes.tests.SystemTestCase):
|
class TC_01_Properties(qubes.tests.SystemTestCase):
|
||||||
@ -75,6 +75,7 @@ class TC_01_Properties(qubes.tests.SystemTestCase):
|
|||||||
self.vm = self.app.add_new_vm(qubes.vm.appvm.AppVM, name=self.vmname,
|
self.vm = self.app.add_new_vm(qubes.vm.appvm.AppVM, name=self.vmname,
|
||||||
template=self.app.default_template,
|
template=self.app.default_template,
|
||||||
label='red')
|
label='red')
|
||||||
|
self.loop.run_until_complete(self.vm.create_on_disk())
|
||||||
|
|
||||||
@unittest.expectedFailure
|
@unittest.expectedFailure
|
||||||
def test_030_clone(self):
|
def test_030_clone(self):
|
||||||
@ -90,7 +91,7 @@ class TC_01_Properties(qubes.tests.SystemTestCase):
|
|||||||
label='red')
|
label='red')
|
||||||
testvm2.clone_properties(testvm1)
|
testvm2.clone_properties(testvm1)
|
||||||
self.loop.run_until_complete(testvm2.clone_disk_files(testvm1))
|
self.loop.run_until_complete(testvm2.clone_disk_files(testvm1))
|
||||||
self.assertTrue(testvm1.storage.verify())
|
self.assertTrue(self.loop.run_until_complete(testvm1.storage.verify()))
|
||||||
self.assertIn('source', testvm1.volumes['root'].config)
|
self.assertIn('source', testvm1.volumes['root'].config)
|
||||||
self.assertNotEquals(testvm2, None)
|
self.assertNotEquals(testvm2, None)
|
||||||
self.assertNotEquals(testvm2.volumes, {})
|
self.assertNotEquals(testvm2.volumes, {})
|
||||||
@ -215,13 +216,18 @@ class TC_02_QvmPrefs(qubes.tests.SystemTestCase):
|
|||||||
self.app.save()
|
self.app.save()
|
||||||
|
|
||||||
def pref_set(self, name, value, valid=True):
|
def pref_set(self, name, value, valid=True):
|
||||||
p = subprocess.Popen(
|
self.loop.run_until_complete(self._pref_set(name, value, valid))
|
||||||
['qvm-prefs'] + self.sharedopts +
|
|
||||||
(['--'] if value != '-D' else []) + [self.testvm.name, name, value],
|
@asyncio.coroutine
|
||||||
|
def _pref_set(self, name, value, valid=True):
|
||||||
|
cmd = ['qvm-prefs']
|
||||||
|
if value != '-D':
|
||||||
|
cmd.append('--')
|
||||||
|
cmd.extend((self.testvm.name, name, value))
|
||||||
|
p = yield from asyncio.create_subprocess_exec(*cmd,
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
stderr=subprocess.PIPE,
|
stderr=subprocess.PIPE)
|
||||||
)
|
(stdout, stderr) = yield from p.communicate()
|
||||||
(stdout, stderr) = p.communicate()
|
|
||||||
if valid:
|
if valid:
|
||||||
self.assertEqual(p.returncode, 0,
|
self.assertEqual(p.returncode, 0,
|
||||||
"qvm-prefs .. '{}' '{}' failed: {}{}".format(
|
"qvm-prefs .. '{}' '{}' failed: {}{}".format(
|
||||||
@ -233,9 +239,14 @@ class TC_02_QvmPrefs(qubes.tests.SystemTestCase):
|
|||||||
"property '{}'".format(value, name))
|
"property '{}'".format(value, name))
|
||||||
|
|
||||||
def pref_get(self, name):
|
def pref_get(self, name):
|
||||||
p = subprocess.Popen(['qvm-prefs'] + self.sharedopts +
|
self.loop.run_until_complete(self._pref_get(name))
|
||||||
['--', self.testvm.name, name], stdout=subprocess.PIPE)
|
|
||||||
(stdout, _) = p.communicate()
|
@asyncio.coroutine
|
||||||
|
def _pref_get(self, name):
|
||||||
|
p = yield from asyncio.create_subprocess_exec(
|
||||||
|
'qvm-prefs', *self.sharedopts, '--', self.testvm.name, name,
|
||||||
|
stdout=subprocess.PIPE)
|
||||||
|
(stdout, _) = yield from p.communicate()
|
||||||
self.assertEqual(p.returncode, 0)
|
self.assertEqual(p.returncode, 0)
|
||||||
return stdout.strip()
|
return stdout.strip()
|
||||||
|
|
||||||
@ -343,10 +354,13 @@ class TC_03_QvmRevertTemplateChanges(qubes.tests.SystemTestCase):
|
|||||||
self.log.warning("template not modified, test result will be "
|
self.log.warning("template not modified, test result will be "
|
||||||
"unreliable")
|
"unreliable")
|
||||||
self.assertNotEqual(self.test_template.volumes['root'].revisions, {})
|
self.assertNotEqual(self.test_template.volumes['root'].revisions, {})
|
||||||
with self.assertNotRaises(subprocess.CalledProcessError):
|
|
||||||
pool_vid = repr(self.test_template.volumes['root']).strip("'")
|
pool_vid = repr(self.test_template.volumes['root']).strip("'")
|
||||||
revert_cmd = ['qvm-block', 'revert', pool_vid]
|
revert_cmd = ['qvm-block', 'revert', pool_vid]
|
||||||
subprocess.check_call(revert_cmd)
|
p = self.loop.run_until_complete(asyncio.create_subprocess_exec(
|
||||||
|
*revert_cmd))
|
||||||
|
self.loop.run_until_complete(p.wait())
|
||||||
|
self.assertEqual(p.returncode, 0)
|
||||||
|
|
||||||
|
|
||||||
checksum_after = self.get_rootimg_checksum()
|
checksum_after = self.get_rootimg_checksum()
|
||||||
self.assertEqual(checksum_before, checksum_after)
|
self.assertEqual(checksum_before, checksum_after)
|
||||||
|
Loading…
Reference in New Issue
Block a user