Reviewed: https://review.openstack.org/562339 Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=815b11f70a3fd31888fb3e3e7b38e3a697bf6244 Submitter: Zuul Branch: master
commit 815b11f70a3fd31888fb3e3e7b38e3a697bf6244 Author: Jay Pipes <[email protected]> Date: Wed Apr 18 12:39:35 2018 -0400 mock utils.execute() in qemu-img unit test There was a unit test that was not mocking utils.execute() and relying on qemu-img being installed on the machine running the tests. This fixes the test to mock out utils.execute() and raise a ProcessExecutionError that simulates the expected behaviour from qemu-img. Fixes bug: #1765122 Change-Id: Ia6fc089fce0cc0ba1fb8d4d4ffbf7f47968a0507 ** Changed in: nova Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1765122 Title: qemu-img execute not mocked in unit tests Status in OpenStack Compute (nova): Fix Released Bug description: nova.tests.unit.virt.test_images.QemuTestCase.test_qemu_info_with_errors is failing in both py27 and py36 tox environments due to a missing mock. This system does not have qemu(-img) installed in it and running unit tests returns the following: ============================== Failed 1 tests - output below: ============================== nova.tests.unit.virt.test_images.QemuTestCase.test_qemu_info_with_errors ------------------------------------------------------------------------ Captured traceback: ~~~~~~~~~~~~~~~~~~~ b'Traceback (most recent call last):' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/nova/virt/images.py", line 73, in qemu_img_info' b' out, err = utils.execute(*cmd, prlimit=QEMU_IMG_LIMITS)' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/nova/utils.py", line 231, in execute' b' return processutils.execute(*cmd, **kwargs)' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/oslo_concurrency/processutils.py", line 424, in execute' b' cmd=sanitized_cmd)' b'oslo_concurrency.processutils.ProcessExecutionError: Unexpected error while running command.' b'Command: /home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/bin/python -m oslo_concurrency.prlimit --as=1073741824 --cpu=30 -- env LC_ALL=C LANG=C qemu-img info /fake/path' b'Exit code: 127' b"Stdout: ''" b"Stderr: '/usr/bin/env: \xe2\x80\x98qemu-img\xe2\x80\x99: No such file or directory\\n'" b'' b'During handling of the above exception, another exception occurred:' b'' b'Traceback (most recent call last):' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/mock/mock.py", line 1305, in patched' b' return func(*args, **keywargs)' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/nova/tests/unit/virt/test_images.py", line 37, in test_qemu_info_with_errors' b" '/fake/path')" b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 485, in assertRaises' b' self.assertThat(our_callable, matcher)' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 496, in assertThat' b' mismatch_error = self._matchHelper(matchee, matcher, message, verbose)' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 547, in _matchHelper' b' mismatch = matcher.match(matchee)' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/matchers/_exception.py", line 108, in match' b' mismatch = self.exception_matcher.match(exc_info)' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/matchers/_higherorder.py", line 62, in match' b' mismatch = matcher.match(matchee)' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 475, in match' b' reraise(*matchee)' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/_compat3x.py", line 16, in reraise' b' raise exc_obj.with_traceback(exc_tb)' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/matchers/_exception.py", line 101, in match' b' result = matchee()' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 1049, in __call__' b' return self._callable_object(*self._args, **self._kwargs)' b' File "/home/jaypipes/src/git.openstack.org/openstack/nova/nova/virt/images.py", line 87, in qemu_img_info' b' raise exception.InvalidDiskInfo(reason=msg)' b'nova.exception.InvalidDiskInfo: Disk info file is invalid: qemu-img failed to execute on /fake/path : Unexpected error while running command.' b'Command: /home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/bin/python -m oslo_concurrency.prlimit --as=1073741824 --cpu=30 -- env LC_ALL=C LANG=C qemu-img info /fake/path' b'Exit code: 127' b"Stdout: ''" b"Stderr: '/usr/bin/env: \xe2\x80\x98qemu-img\xe2\x80\x99: No such file or directory\\n'" b'' To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1765122/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

