summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorXtreak <tir.karthi@gmail.com>2019-05-29 07:02:26 (GMT)
committerMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-05-29 07:02:25 (GMT)
commit0ae022c6a47abffce22ec185552e319b7b93dbf4 (patch)
treeee57f6cae38d05d301422448561ba679fa033390 /Lib
parent744c08a9c75a1a53b7a6521fcee3e7c513919ff9 (diff)
downloadcpython-0ae022c6a47abffce22ec185552e319b7b93dbf4.zip
cpython-0ae022c6a47abffce22ec185552e319b7b93dbf4.tar.gz
cpython-0ae022c6a47abffce22ec185552e319b7b93dbf4.tar.bz2
bpo-37075: Fix string concatenation in assert_has_awaits error message (GH-13616)
* Fix the implicit string concatenation in `assert_has_awaits` error message. * Use "await" instead of "call" in `assert_awaited_with` error message. https://bugs.python.org/issue37075
Diffstat (limited to 'Lib')
-rw-r--r--Lib/unittest/mock.py10
-rw-r--r--Lib/unittest/test/testmock/testasync.py6
2 files changed, 9 insertions, 7 deletions
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
index 055fbb3..be96194 100644
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -791,12 +791,12 @@ class NonCallableMock(Base):
return _format_call_signature(name, args, kwargs)
- def _format_mock_failure_message(self, args, kwargs):
- message = 'expected call not found.\nExpected: %s\nActual: %s'
+ def _format_mock_failure_message(self, args, kwargs, action='call'):
+ message = 'expected %s not found.\nExpected: %s\nActual: %s'
expected_string = self._format_mock_call_signature(args, kwargs)
call_args = self.call_args
actual_string = self._format_mock_call_signature(*call_args)
- return message % (expected_string, actual_string)
+ return message % (action, expected_string, actual_string)
def _call_matcher(self, _call):
@@ -2139,7 +2139,7 @@ class AsyncMockMixin(Base):
raise AssertionError(f'Expected await: {expected}\nNot awaited')
def _error_message():
- msg = self._format_mock_failure_message(args, kwargs)
+ msg = self._format_mock_failure_message(args, kwargs, action='await')
return msg
expected = self._call_matcher((args, kwargs))
@@ -2193,7 +2193,7 @@ class AsyncMockMixin(Base):
if not any_order:
if expected not in all_awaits:
raise AssertionError(
- f'Awaits not found.\nExpected: {_CallList(calls)}\n',
+ f'Awaits not found.\nExpected: {_CallList(calls)}\n'
f'Actual: {self.await_args_list}'
) from cause
return
diff --git a/Lib/unittest/test/testmock/testasync.py b/Lib/unittest/test/testmock/testasync.py
index ccea4fe..fa906e4 100644
--- a/Lib/unittest/test/testmock/testasync.py
+++ b/Lib/unittest/test/testmock/testasync.py
@@ -542,7 +542,8 @@ class AsyncMockAssert(unittest.TestCase):
def test_assert_awaited_with(self):
asyncio.run(self._runnable_test())
- with self.assertRaises(AssertionError):
+ msg = 'expected await not found'
+ with self.assertRaisesRegex(AssertionError, msg):
self.mock.assert_awaited_with('foo')
asyncio.run(self._runnable_test('foo'))
@@ -580,8 +581,9 @@ class AsyncMockAssert(unittest.TestCase):
def test_assert_has_awaits_no_order(self):
calls = [call('NormalFoo'), call('baz')]
- with self.assertRaises(AssertionError):
+ with self.assertRaises(AssertionError) as cm:
self.mock.assert_has_awaits(calls)
+ self.assertEqual(len(cm.exception.args), 1)
asyncio.run(self._runnable_test('foo'))
with self.assertRaises(AssertionError):