[Bug 1765122] Re: qemu-img execute not mocked in unit tests

Corey Bryant corey.bryant at canonical.com
Mon Jul 16 16:05:04 UTC 2018


This bug was fixed in the package nova - 2:17.0.5-0ubuntu1~cloud0
---------------

 nova (2:17.0.5-0ubuntu1~cloud0) xenial-queens; urgency=medium
 .
   * New upstream release for the Ubuntu Cloud Archive.
 .
 nova (2:17.0.5-0ubuntu1) bionic; urgency=medium
 .
   * New stable point release for OpenStack Queens (LP: #1778747).
   * d/p/mock-utils.execute-in-qemu-img-unit-test.patch: Cherry-picked from
     upstream stable/queens branch to fix failing unit test (LP: #1765122).


** Changed in: cloud-archive/queens
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to Ubuntu Cloud Archive.
https://bugs.launchpad.net/bugs/1765122

Title:
  qemu-img execute not mocked in unit tests

Status in Ubuntu Cloud Archive:
  Fix Committed
Status in Ubuntu Cloud Archive ocata series:
  Fix Committed
Status in Ubuntu Cloud Archive pike series:
  Fix Committed
Status in Ubuntu Cloud Archive queens series:
  Fix Released
Status in Ubuntu Cloud Archive rocky series:
  Fix Committed
Status in OpenStack Compute (nova):
  Fix Released
Status in nova package in Ubuntu:
  Fix Released
Status in nova source package in Bionic:
  Fix Released
Status in nova source package in Cosmic:
  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''


  Adding Ubuntu SRU details:
  --------------------------
  [Impact]
  When building the latest package version of nova, the following unit test fails:

  nova.tests.unit.virt.test_images.QemuTestCase.test_qemu_info_with_errors

  [Test Case]
  Simply building the package will confirm whether or not the test fails.

  [Regression Potential]
  Extremely low. This is just a test update.

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1765122/+subscriptions



More information about the Ubuntu-openstack-bugs mailing list