ABCMock with no expectations set fails on assert_satisfied on version 0.13.0
Here's a fixture that fails:
@pytest.fixture
def backend():
mock = ABCMock('backend', gateways.IBackend)
with satisfied(mock):
yield mock
Stacktrace:
tests/unit/filesystem/conftest.py:12: in backend
yield mock
../../../.pyenv/versions/3.9.4/lib/python3.9/contextlib.py:124: in __exit__
next(self.gen)
../../../.local/share/virtualenvs/lrufs-DotI7NTp/lib/python3.9/site-packages/mockify/core/_functions.py:161: in satisfied
assert_satisfied(mock, *mocks)
../../../.local/share/virtualenvs/lrufs-DotI7NTp/lib/python3.9/site-packages/mockify/core/_functions.py:54: in assert_satisfied
impl(mock, *args)
../../../.local/share/virtualenvs/lrufs-DotI7NTp/lib/python3.9/site-packages/mockify/core/_functions.py:50: in impl
unsatisfied_expectations = list(iter_unsatisfied_expectations(mocks))
../../../.local/share/virtualenvs/lrufs-DotI7NTp/lib/python3.9/site-packages/mockify/core/_functions.py:43: in iter_unsatisfied_expectations
for child in mock.__m_walk__():
../../../.local/share/virtualenvs/lrufs-DotI7NTp/lib/python3.9/site-packages/mockify/abc.py:353: in __m_walk__
yield from walk(self)
../../../.local/share/virtualenvs/lrufs-DotI7NTp/lib/python3.9/site-packages/mockify/abc.py:350: in walk
for child in mock.__m_children__():
../../../.local/share/virtualenvs/lrufs-DotI7NTp/lib/python3.9/site-packages/mockify/mock/_abc_mock.py:176: in __m_children__
for obj in self.__dict__.values():
E RuntimeError: dictionary changed size during iteration
Error does not appear when at least one expectation is recorderd.
Edited by Maciej Wiatrzyk