Skip to content
Merged
7 changes: 5 additions & 2 deletions Lib/unittest/mock.py
Original file line number Diff line number Diff line change
Expand Up @@ -745,7 +745,7 @@ def _format_mock_call_signature(self, args, kwargs):


def _format_mock_failure_message(self, args, kwargs):
message = 'Expected call: %s\nActual call: %s'
message = 'expected call not found.\nExpected: %s\nActual: %s'
expected_string = self._format_mock_call_signature(args, kwargs)
call_args = self.call_args
if len(call_args) == 3:
Expand Down Expand Up @@ -814,7 +814,10 @@ def assert_called_with(_mock_self, *args, **kwargs):
self = _mock_self
if self.call_args is None:
expected = self._format_mock_call_signature(args, kwargs)
raise AssertionError('Expected call: %s\nNot called' % (expected,))
actual = 'not called.'
error_message = ('expected call not found.\nExpected: %s\nActual: %s'
% (expected, actual))
raise AssertionError(error_message)

def _error_message():
msg = self._format_mock_failure_message(args, kwargs)
Expand Down
15 changes: 8 additions & 7 deletions Lib/unittest/test/testmock/testmock.py
Original file line number Diff line number Diff line change
Expand Up @@ -724,7 +724,7 @@ def test_baseexceptional_side_effect(self):

def test_assert_called_with_message(self):
mock = Mock()
self.assertRaisesRegex(AssertionError, 'Not called',
self.assertRaisesRegex(AssertionError, 'not called',
mock.assert_called_with)


Expand Down Expand Up @@ -917,10 +917,11 @@ def assertRaisesWithMsg(self, exception, message, func, *args, **kwargs):
def test_assert_called_with_failure_message(self):
mock = NonCallableMock()

actual = 'not called.'
expected = "mock(1, '2', 3, bar='foo')"
message = 'Expected call: %s\nNot called'
message = 'expected call not found.\nExpected: %s\nActual: %s'
self.assertRaisesWithMsg(
AssertionError, message % (expected,),
AssertionError, message % (expected, actual),
mock.assert_called_with, 1, '2', 3, bar='foo'
)

Expand All @@ -933,7 +934,7 @@ def test_assert_called_with_failure_message(self):
for meth in asserters:
actual = "foo(1, '2', 3, foo='foo')"
expected = "foo(1, '2', 3, bar='foo')"
message = 'Expected call: %s\nActual call: %s'
message = 'expected call not found.\nExpected: %s\nActual: %s'
self.assertRaisesWithMsg(
AssertionError, message % (expected, actual),
meth, 1, '2', 3, bar='foo'
Expand All @@ -943,7 +944,7 @@ def test_assert_called_with_failure_message(self):
for meth in asserters:
actual = "foo(1, '2', 3, foo='foo')"
expected = "foo(bar='foo')"
message = 'Expected call: %s\nActual call: %s'
message = 'expected call not found.\nExpected: %s\nActual: %s'
self.assertRaisesWithMsg(
AssertionError, message % (expected, actual),
meth, bar='foo'
Expand All @@ -953,7 +954,7 @@ def test_assert_called_with_failure_message(self):
for meth in asserters:
actual = "foo(1, '2', 3, foo='foo')"
expected = "foo(1, 2, 3)"
message = 'Expected call: %s\nActual call: %s'
message = 'expected call not found.\nExpected: %s\nActual: %s'
self.assertRaisesWithMsg(
AssertionError, message % (expected, actual),
meth, 1, 2, 3
Expand All @@ -963,7 +964,7 @@ def test_assert_called_with_failure_message(self):
for meth in asserters:
actual = "foo(1, '2', 3, foo='foo')"
expected = "foo()"
message = 'Expected call: %s\nActual call: %s'
message = 'expected call not found.\nExpected: %s\nActual: %s'
self.assertRaisesWithMsg(
AssertionError, message % (expected, actual), meth
)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Write expected and actual call parameters on separate lines in :meth:`unittest.mock.Mock.assert_called_with` assertion errors. Contributed by Susan Su.