canonical / mysql-operator

Machine charm for MySQL following the operator framework
https://charmhub.io/mysql
Apache License 2.0
5 stars 8 forks source link

tenacity >= 8.4 breaks unit tests #468

Open tonyandrewmeyer opened 1 week ago

tonyandrewmeyer commented 1 week ago

Steps to reproduce

  1. Clone repo
  2. poetry lock
  3. tox

Expected behavior

All tests pass.

Actual behavior

============================================================================= FAILURES =============================================================================
_________________________________________________ TestMySQLBase.test_remove_primary_instance_error_acquiring_lock __________________________________________________
Traceback (most recent call last):
  File "/usr/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/usr/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/usr/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1390, in patched
    return func(*newargs, **newkeywargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tameyer/code/mysql-operator/tests/unit/test_mysql.py", line 550, in test_remove_primary_instance_error_acquiring_lock
    self.assertEqual(_get_cluster_primary_address.call_count, 1)
  File "/usr/lib/python3.12/unittest/case.py", line 885, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/usr/lib/python3.12/unittest/case.py", line 878, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: 15 != 1
____________________________________________________________ TestMySQL.test_wait_until_mysql_connection ____________________________________________________________
Traceback (most recent call last):
  File "/usr/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/usr/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/usr/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1387, in patched
    with self.decoration_helper(patched,
  File "/usr/lib/python3.12/contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1369, in decoration_helper
    arg = exit_stack.enter_context(patching)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/contextlib.py", line 526, in enter_context
    result = _enter(cm)
             ^^^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1458, in __enter__
    original, local = self.get_original()
                      ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/unittest/mock.py", line 1431, in get_original
    raise AttributeError(
AttributeError: <function MySQL.wait_until_mysql_connection at 0x7937ae99bb00> does not have the attribute 'stop'

Versions

Operating system: Ubuntu 24.04 LTS

Juju CLI: N/A

Juju agent: N/A

Charm revision: 858e07f

LXD: N/A

Log output

Juju debug log: N/A

Additional context

github-actions[bot] commented 1 week ago

https://warthogs.atlassian.net/browse/DPE-4742