With Python 3.10, we see the following errors:
====================================================================== ERROR: test_acquire_uses_specified_timeout (test.test_pidfile.TimeoutPIDLockFile_TestCase) test.test_pidfile.TimeoutPIDLockFile_TestCase.test_acquire_uses_specified_timeout ---------------------------------------------------------------------- testtools.testresult.real._StringException: Traceback (most recent call last): File "/usr/lib64/python3.10/unittest/mock.py", line 1367, in patched with self.decoration_helper(patched, File "/usr/lib64/python3.10/contextlib.py", line 133, in __enter__ return next(self.gen) File "/usr/lib64/python3.10/unittest/mock.py", line 1349, in decoration_helper arg = exit_stack.enter_context(patching) File "/usr/lib64/python3.10/contextlib.py", line 478, in enter_context result = _cm_type.__enter__(cm) File "/usr/lib64/python3.10/unittest/mock.py", line 1529, in __enter__ raise InvalidSpecError( unittest.mock.InvalidSpecError: Cannot autospec attr 'acquire' from target 'PIDLockFile' as it has already been mocked out. [target=<class 'lockfile.pidlockfile.PIDLockFile'>, attr=<MagicMock name='acquire' id='139634358950000'>] ====================================================================== ERROR: test_acquire_uses_stored_timeout_by_default (test.test_pidfile.TimeoutPIDLockFile_TestCase) test.test_pidfile.TimeoutPIDLockFile_TestCase.test_acquire_uses_stored_timeout_by_default ---------------------------------------------------------------------- testtools.testresult.real._StringException: Traceback (most recent call last): File "/usr/lib64/python3.10/unittest/mock.py", line 1367, in patched with self.decoration_helper(patched, File "/usr/lib64/python3.10/contextlib.py", line 133, in __enter__ return next(self.gen) File "/usr/lib64/python3.10/unittest/mock.py", line 1349, in decoration_helper arg = exit_stack.enter_context(patching) File "/usr/lib64/python3.10/contextlib.py", line 478, in enter_context result = _cm_type.__enter__(cm) File "/usr/lib64/python3.10/unittest/mock.py", line 1529, in __enter__ raise InvalidSpecError( unittest.mock.InvalidSpecError: Cannot autospec attr 'acquire' from target 'PIDLockFile' as it has already been mocked out. [target=<class 'lockfile.pidlockfile.PIDLockFile'>, attr=<MagicMock name='acquire' id='139634358932176'>] ====================================================================== ERROR: test_calls_superclass_init (test.test_pidfile.TimeoutPIDLockFile_TestCase) test.test_pidfile.TimeoutPIDLockFile_TestCase.test_calls_superclass_init ---------------------------------------------------------------------- testtools.testresult.real._StringException: Traceback (most recent call last): File "/usr/lib64/python3.10/unittest/mock.py", line 1367, in patched with self.decoration_helper(patched, File "/usr/lib64/python3.10/contextlib.py", line 133, in __enter__ return next(self.gen) File "/usr/lib64/python3.10/unittest/mock.py", line 1349, in decoration_helper arg = exit_stack.enter_context(patching) File "/usr/lib64/python3.10/contextlib.py", line 478, in enter_context result = _cm_type.__enter__(cm) File "/usr/lib64/python3.10/unittest/mock.py", line 1529, in __enter__ raise InvalidSpecError( unittest.mock.InvalidSpecError: Cannot autospec attr '__init__' from target 'PIDLockFile' as it has already been mocked out. [target=<class 'lockfile.pidlockfile.PIDLockFile'>, attr=<MagicMock name='__init__' id='139634359084912'>]
This avoids them.
I am still about to test this in Fedora first.
The
lockfile.pidlockfile.PIDLockFile
class has these attributes (in the packagelockfile == 0.12.2
). Is that the case for you?When using an instance of that class in these test cases, we want those attributes mocked for this collection of test cases. Are you saying these are already mocked somewhere else?