Francesco Romani has uploaded a new change for review. Change subject: tests: bootstrap changeBlockDev tests ......................................................................
tests: bootstrap changeBlockDev tests add very basic tests, to be used in followup patch. Change-Id: I906ae55f6582833f5f023ce64bdd28c02ede33b2 Signed-off-by: Francesco Romani <[email protected]> --- M tests/vmTests.py M tests/vmfakelib.py 2 files changed, 45 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/91/38391/1 diff --git a/tests/vmTests.py b/tests/vmTests.py index a855467..73ee763 100644 --- a/tests/vmTests.py +++ b/tests/vmTests.py @@ -20,6 +20,7 @@ # from itertools import product +import logging import re import threading import time @@ -1296,3 +1297,43 @@ def testSmpByParameters(self, cpus): with fake.VM({'smp': cpus}) as testvm: self.assertEqual(int(testvm.conf['smp']), cpus) + + +# we need a different ClientIF Fake because we need to +# fake +# prepareVolumePath +# and +# teardownVolumePath + +class FakeClientIF(object): + def __init__(self): + # the bare minimum initialization for our test needs. + self.irs = None # just to make sure nothing ever happens + self.log = logging.getLogger('fake.ClientIF') + self.channelListener = None + self.vmContainerLock = threading.Lock() + self.vmContainer = {} + + def prepareVolumePath(self, drivespec): + pass + + def teardownVolumePath(self, drivespec): + pass + + +class ChangeBlockDevTests(TestCaseBase): + + def test_change_cd_failure(self): + cif = FakeClientIF() + # no specific meaning, actually any error != None is good + with fake.VM(cif=cif) as fakevm: + fakevm._dom = fake.Domain( + virtError=libvirt.VIR_ERR_ACCESS_DENIED) + + res = fakevm.changeCD({}) + + expected_error = define.errCode['changeDisk']['status'] + self.assertEqual(res['status']['code'], + expected_error['code']) + self.assertEqual(res['status']['message'], + expected_error['message']) diff --git a/tests/vmfakelib.py b/tests/vmfakelib.py index a1b56c5..6919351 100644 --- a/tests/vmfakelib.py +++ b/tests/vmfakelib.py @@ -94,6 +94,7 @@ return self._xml def updateDeviceFlags(self, devXml, unused): + self._failIfRequested() self.devXml = devXml def vcpusFlags(self, flags): @@ -181,13 +182,14 @@ @contextmanager def VM(params=None, devices=None, runCpu=False, - arch=caps.Architecture.X86_64, status=None): + arch=caps.Architecture.X86_64, status=None, + cif=None): with namedTemporaryDir() as tmpDir: with MonkeyPatchScope([(constants, 'P_VDSM_RUN', tmpDir + '/'), (libvirtconnection, 'get', Connection)]): vmParams = {'vmId': 'TESTING'} vmParams.update({} if params is None else params) - cif = ClientIF() + cif = ClientIF() if cif is None else cif fake = vm.Vm(cif, vmParams) cif.vmContainer[fake.id] = fake fake.arch = arch -- To view, visit https://gerrit.ovirt.org/38391 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I906ae55f6582833f5f023ce64bdd28c02ede33b2 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Francesco Romani <[email protected]> _______________________________________________ vdsm-patches mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
