assert_has_calls
- это еще один подход к этой проблеме.
Из документов:
assert_has_calls (вызовы, any_order = False)
утверждают, что mock был вызван с указанными вызовами. Список mock_calls проверяется для вызовов.
Если any_order имеет значение False (по умолчанию), вызовы должны быть последовательными. Дополнительные вызовы до или после указанных вызовов.
Если any_order имеет значение True, то вызовы могут быть в любом порядке, но все они должны отображаться в mock_calls.
blockquote>Пример:
>>> from mock import call, Mock >>> mock = Mock(return_value=None) >>> mock(1) >>> mock(2) >>> mock(3) >>> mock(4) >>> calls = [call(2), call(3)] >>> mock.assert_has_calls(calls) >>> calls = [call(4), call(2), call(3)] >>> mock.assert_has_calls(calls, any_order=True)
Источник: http://www.voidspace.org.uk/python/mock/mock.html#mock.Mock.assert_has_calls