bpo-35500: align expected and actual calls on mock.assert_called_with error message. (GH-11804)
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
index ef5c55d..8f46050 100644
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -745,7 +745,7 @@
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:
@@ -814,7 +814,10 @@
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)
diff --git a/Lib/unittest/test/testmock/testmock.py b/Lib/unittest/test/testmock/testmock.py
index 64e2fcf..04ab522 100644
--- a/Lib/unittest/test/testmock/testmock.py
+++ b/Lib/unittest/test/testmock/testmock.py
@@ -724,7 +724,7 @@
def test_assert_called_with_message(self):
mock = Mock()
- self.assertRaisesRegex(AssertionError, 'Not called',
+ self.assertRaisesRegex(AssertionError, 'not called',
mock.assert_called_with)
@@ -917,10 +917,11 @@
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'
)
@@ -933,7 +934,7 @@
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'
@@ -943,7 +944,7 @@
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'
@@ -953,7 +954,7 @@
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
@@ -963,7 +964,7 @@
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
)
diff --git a/Misc/NEWS.d/next/Library/2019-02-10-00-00-13.bpo-35500.1HOMmo.rst b/Misc/NEWS.d/next/Library/2019-02-10-00-00-13.bpo-35500.1HOMmo.rst
new file mode 100644
index 0000000..16b0fbf
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-02-10-00-00-13.bpo-35500.1HOMmo.rst
@@ -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.