From: Michael Foord Date: Fri, 28 Sep 2012 15:15:22 +0000 (+0100) Subject: Closes issue 15323. Improve failure message of Mock.assert_called_once_with X-Git-Tag: v3.3.1rc1~818^2^2~5 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=28d591ceef337cc37c4b44d7958dea3f59d92018;p=python Closes issue 15323. Improve failure message of Mock.assert_called_once_with --- diff --git a/Doc/library/unittest.mock.rst b/Doc/library/unittest.mock.rst index bed698afe4..3e50031115 100644 --- a/Doc/library/unittest.mock.rst +++ b/Doc/library/unittest.mock.rst @@ -276,7 +276,7 @@ the `new_callable` argument to `patch`. >>> mock.assert_called_once_with('foo', bar='baz') Traceback (most recent call last): ... - AssertionError: Expected to be called once. Called 2 times. + AssertionError: Expected 'mock' to be called once. Called 2 times. .. method:: assert_any_call(*args, **kwargs) @@ -2020,7 +2020,7 @@ extremely handy: :meth:`~Mock.assert_called_with` and >>> mock.assert_called_once_with(1, 2, 3) Traceback (most recent call last): ... - AssertionError: Expected to be called once. Called 2 times. + AssertionError: Expected 'mock' to be called once. Called 2 times. Because mocks auto-create attributes on demand, and allow you to call them with arbitrary arguments, if you misspell one of these assert methods then diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py index 95570aa3a9..324cf399b3 100644 --- a/Lib/unittest/mock.py +++ b/Lib/unittest/mock.py @@ -731,8 +731,8 @@ class NonCallableMock(Base): arguments.""" self = _mock_self if not self.call_count == 1: - msg = ("Expected to be called once. Called %s times." % - self.call_count) + msg = ("Expected '%s' to be called once. Called %s times." % + (self._mock_name or 'mock', self.call_count)) raise AssertionError(msg) return self.assert_called_with(*args, **kwargs) diff --git a/Lib/unittest/test/testmock/testmock.py b/Lib/unittest/test/testmock/testmock.py index 64fd1a11c9..2c6f128975 100644 --- a/Lib/unittest/test/testmock/testmock.py +++ b/Lib/unittest/test/testmock/testmock.py @@ -463,6 +463,13 @@ class MockTest(unittest.TestCase): mock.assert_called_with) + def test_assert_called_once_with_message(self): + mock = Mock(name='geoffrey') + self.assertRaisesRegex(AssertionError, + r"Expected 'geoffrey' to be called once\.", + mock.assert_called_once_with) + + def test__name__(self): mock = Mock() self.assertRaises(AttributeError, lambda: mock.__name__) diff --git a/Misc/NEWS b/Misc/NEWS index c3fc68605b..43fcfa42c7 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -36,6 +36,8 @@ Core and Builtins Library ------- +- Issue #15323: improve failure message of Mock.assert_called_once_with + - Issue #16064: unittest -m claims executable is "python", not "python3" - Issue #12376: Pass on parameters in TextTestResult.__init__ super call