Unit test failure with Tenacity 8.4.2

Bug #2073044 reported by Thomas Goirand
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
octavia
New
Undecided
Unassigned

Bug Description

Hi,

As per this Debian bug: https://bugs.debian.org/1074690 which I could reproduce building locally, Octavia fails 4 unit tests when building the Debian package. Please help me fixing them, but above all, please confirm if this is a unit test issue or if the problem is deeper in the functioning of Octavia. If the later, then I wont be able to just ignore these tests. :/

======================================================================
FAIL: octavia.tests.unit.controller.worker.v2.tasks.test_network_tasks.TestNetworkTasks.test_create_SRIOV_base_port
octavia.tests.unit.controller.worker.v2.tasks.test_network_tasks.TestNetworkTasks.test_create_SRIOV_base_port
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/usr/lib/python3.12/unittest/mock.py", line 1390, in patched
    return func(*newargs, **newkeywargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/octavia/tests/unit/controller/worker/v2/tasks/test_network_tasks.py", line 1856, in test_create_SRIOV_base_port
    self.assertRaises(exceptions.OctaviaException, net_task.execute,
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 495, in assertRaises
    self.assertThat(our_callable, matcher)
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 507, in assertThat
    mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 560, in _matchHelper
    mismatch = matcher.match(matchee)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/matchers/_exception.py", line 108, in match
    mismatch = self.exception_matcher.match(exc_info)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/matchers/_higherorder.py", line 61, in match
    mismatch = matcher.match(matchee)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 484, in match
    reraise(*matchee)
  File "/usr/lib/python3/dist-packages/testtools/compat.py", line 27, in reraise
    raise exc_obj.with_traceback(exc_tb)
  File "/usr/lib/python3/dist-packages/testtools/matchers/_exception.py", line 101, in match
    result = matchee()
             ^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 1110, in __call__
    return self._callable_object(*self._args, **self._kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 336, in wrapped_f
    return copy(f, *args, **kw)
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 475, in __call__
    do = self.iter(retry_state=retry_state)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 376, in iter
    result = action(retry_state)
             ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 418, in exc_check
    raise retry_exc.reraise()
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 185, in reraise
    raise self.last_attempt.result()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 478, in __call__
    result = fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/octavia/controller/worker/v2/tasks/network_tasks.py", line 1062, in execute
    port = self.network_driver.create_port(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1134, in __call__
    return self._mock_call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1138, in _mock_call
    return self._execute_mock_call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1195, in _execute_mock_call
    result = next(effect)
             ^^^^^^^^^^^^
StopIteration

======================================================================
FAIL: octavia.tests.unit.controller.worker.v2.tasks.test_compute_tasks.TestComputeTasks.test_compute_delete
octavia.tests.unit.controller.worker.v2.tasks.test_compute_tasks.TestComputeTasks.test_compute_delete
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/usr/lib/python3.12/unittest/mock.py", line 1390, in patched
    return func(*newargs, **newkeywargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/octavia/tests/unit/controller/worker/v2/tasks/test_compute_tasks.py", line 571, in test_compute_delete
    self.assertRaises(exceptions.OctaviaException, delete_compute.execute,
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 495, in assertRaises
    self.assertThat(our_callable, matcher)
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 507, in assertThat
    mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 560, in _matchHelper
    mismatch = matcher.match(matchee)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/matchers/_exception.py", line 108, in match
    mismatch = self.exception_matcher.match(exc_info)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/matchers/_higherorder.py", line 61, in match
    mismatch = matcher.match(matchee)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 484, in match
    reraise(*matchee)
  File "/usr/lib/python3/dist-packages/testtools/compat.py", line 27, in reraise
    raise exc_obj.with_traceback(exc_tb)
  File "/usr/lib/python3/dist-packages/testtools/matchers/_exception.py", line 101, in match
    result = matchee()
             ^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 1110, in __call__
    return self._callable_object(*self._args, **self._kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 336, in wrapped_f
    return copy(f, *args, **kw)
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 475, in __call__
    do = self.iter(retry_state=retry_state)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 376, in iter
    result = action(retry_state)
             ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 418, in exc_check
    raise retry_exc.reraise()
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 185, in reraise
    raise self.last_attempt.result()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 478, in __call__
    result = fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/octavia/controller/worker/v2/tasks/compute_tasks.py", line 256, in execute
    self.compute.delete(compute_id)
  File "/usr/lib/python3.12/unittest/mock.py", line 1134, in __call__
    return self._mock_call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1138, in _mock_call
    return self._execute_mock_call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1195, in _execute_mock_call
    result = next(effect)
             ^^^^^^^^^^^^
StopIteration

======================================================================
FAIL: octavia.tests.unit.controller.worker.v2.tasks.test_network_tasks.TestNetworkTasks.test_create_vip_base_port
octavia.tests.unit.controller.worker.v2.tasks.test_network_tasks.TestNetworkTasks.test_create_vip_base_port
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/usr/lib/python3.12/unittest/mock.py", line 1390, in patched
    return func(*newargs, **newkeywargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/octavia/tests/unit/controller/worker/v2/tasks/test_network_tasks.py", line 1659, in test_create_vip_base_port
    self.assertRaises(exceptions.OctaviaException, net_task.execute,
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 495, in assertRaises
    self.assertThat(our_callable, matcher)
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 507, in assertThat
    mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 560, in _matchHelper
    mismatch = matcher.match(matchee)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/matchers/_exception.py", line 108, in match
    mismatch = self.exception_matcher.match(exc_info)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/matchers/_higherorder.py", line 61, in match
    mismatch = matcher.match(matchee)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 484, in match
    reraise(*matchee)
  File "/usr/lib/python3/dist-packages/testtools/compat.py", line 27, in reraise
    raise exc_obj.with_traceback(exc_tb)
  File "/usr/lib/python3/dist-packages/testtools/matchers/_exception.py", line 101, in match
    result = matchee()
             ^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 1110, in __call__
    return self._callable_object(*self._args, **self._kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 336, in wrapped_f
    return copy(f, *args, **kw)
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 475, in __call__
    do = self.iter(retry_state=retry_state)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 376, in iter
    result = action(retry_state)
             ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 418, in exc_check
    raise retry_exc.reraise()
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 185, in reraise
    raise self.last_attempt.result()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 478, in __call__
    result = fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/octavia/controller/worker/v2/tasks/network_tasks.py", line 972, in execute
    port = self.network_driver.create_port(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1134, in __call__
    return self._mock_call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1138, in _mock_call
    return self._execute_mock_call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1195, in _execute_mock_call
    result = next(effect)
             ^^^^^^^^^^^^
StopIteration

======================================================================
FAIL: octavia.tests.unit.controller.worker.v2.tasks.test_network_tasks.TestNetworkTasks.test_delete_port
octavia.tests.unit.controller.worker.v2.tasks.test_network_tasks.TestNetworkTasks.test_delete_port
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/usr/lib/python3.12/unittest/mock.py", line 1390, in patched
    return func(*newargs, **newkeywargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/octavia/tests/unit/controller/worker/v2/tasks/test_network_tasks.py", line 1607, in test_delete_port
    self.assertRaises(exceptions.OctaviaException, net_task.execute,
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 495, in assertRaises
    self.assertThat(our_callable, matcher)
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 507, in assertThat
    mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 560, in _matchHelper
    mismatch = matcher.match(matchee)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/matchers/_exception.py", line 108, in match
    mismatch = self.exception_matcher.match(exc_info)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/matchers/_higherorder.py", line 61, in match
    mismatch = matcher.match(matchee)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 484, in match
    reraise(*matchee)
  File "/usr/lib/python3/dist-packages/testtools/compat.py", line 27, in reraise
    raise exc_obj.with_traceback(exc_tb)
  File "/usr/lib/python3/dist-packages/testtools/matchers/_exception.py", line 101, in match
    result = matchee()
             ^^^^^^^^^
  File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 1110, in __call__
    return self._callable_object(*self._args, **self._kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 336, in wrapped_f
    return copy(f, *args, **kw)
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 475, in __call__
    do = self.iter(retry_state=retry_state)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 376, in iter
    result = action(retry_state)
             ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 418, in exc_check
    raise retry_exc.reraise()
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 185, in reraise
    raise self.last_attempt.result()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 478, in __call__
    result = fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/octavia/controller/worker/v2/tasks/network_tasks.py", line 924, in execute
    self.network_driver.delete_port(port_id)
  File "/usr/lib/python3.12/unittest/mock.py", line 1134, in __call__
    return self._mock_call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1138, in _mock_call
    return self._execute_mock_call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1195, in _execute_mock_call
    result = next(effect)
             ^^^^^^^^^^^^
StopIteration

----------------------------------------------------------------------
Ran 1569 tests in 370.916s

FAILED (failures=4)

Revision history for this message
Thomas Goirand (thomas-goirand) wrote :

Ok, so I found out what's going on: someone (else than me) uploaded Tenacity 8.4.1 then 8.4.2, and this broke Octavia.

So please fix Octavia with latest Tenacity 8.4.2... :)

Cheers,

Thomas Goirand (zigo)

summary: - Unit test failure when building Debian package
+ Unit test failure with Tenacity 8.4.2
Revision history for this message
Michael Johnson (johnsom) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.