bpo-28911: Clarify the behaviour of assert_called_once_with.

This commit is contained in:
Arne de Laat 2017-02-23 14:41:26 +01:00
parent 2771304357
commit 9d56b34af2
2 changed files with 8 additions and 7 deletions

View file

@ -303,14 +303,14 @@ the *new_callable* argument to :func:`patch`.
.. method:: assert_called_once_with(*args, **kwargs)
Assert that the mock was called exactly once and with the specified
arguments.
Assert that the mock was called exactly once and that that call was
with the specified arguments.
>>> mock = Mock(return_value=None)
>>> mock('foo', bar='baz')
>>> mock.assert_called_once_with('foo', bar='baz')
>>> mock('foo', bar='baz')
>>> mock.assert_called_once_with('foo', bar='baz')
>>> mock('other', bar='values')
>>> mock.assert_called_once_with('other', bar='values')
Traceback (most recent call last):
...
AssertionError: Expected 'mock' to be called once. Called 2 times.
@ -322,7 +322,8 @@ the *new_callable* argument to :func:`patch`.
The assert passes if the mock has *ever* been called, unlike
:meth:`assert_called_with` and :meth:`assert_called_once_with` that
only pass if the call is the most recent one.
only pass if the call is the most recent one, and in the case of
:meth:`assert_called_once_with` it must also be the only call.
>>> mock = Mock(return_value=None)
>>> mock(1, 2, arg='thing')

View file

@ -811,8 +811,8 @@ def _error_message():
def assert_called_once_with(_mock_self, *args, **kwargs):
"""assert that the mock was called exactly once and with the specified
arguments."""
"""assert that the mock was called exactly once and that that call was
with the specified arguments."""
self = _mock_self
if not self.call_count == 1:
msg = ("Expected '%s' to be called once. Called %s times." %