bpo-36871: Avoid duplicated 'Actual:' in assertion message (GH-16361)

Fixes an issue caught after merge of PR 16005.

Tightened test assertions to check the entire assertion message.
This commit is contained in:
Samuel Freilich 2019-09-24 18:04:29 -04:00 committed by Gregory P. Smith
parent b5a7a4f0c2
commit 2180f6b058
3 changed files with 32 additions and 18 deletions

View file

@ -892,21 +892,28 @@ class AsyncMockAssert(unittest.TestCase):
self.mock.assert_not_awaited()
def test_assert_has_awaits_not_matching_spec_error(self):
async def f(): pass
async def f(x=None): pass
mock = AsyncMock(spec=f)
self.mock = AsyncMock(spec=f)
asyncio.run(self._runnable_test(1))
with self.assertRaisesRegex(
AssertionError,
re.escape('Awaits not found.\nExpected:')) as cm:
mock.assert_has_awaits([call()])
'^{}$'.format(
re.escape('Awaits not found.\n'
'Expected: [call()]\n'
'Actual: [call(1)]'))) as cm:
self.mock.assert_has_awaits([call()])
self.assertIsNone(cm.exception.__cause__)
with self.assertRaisesRegex(
AssertionError,
re.escape('Error processing expected awaits.\n'
"Errors: [None, TypeError('too many positional "
"arguments')]\n"
'Expected:')) as cm:
mock.assert_has_awaits([call(), call('wrong')])
'^{}$'.format(
re.escape(
'Error processing expected awaits.\n'
"Errors: [None, TypeError('too many positional "
"arguments')]\n"
'Expected: [call(), call(1, 2)]\n'
'Actual: [call(1)]'))) as cm:
self.mock.assert_has_awaits([call(), call(1, 2)])
self.assertIsInstance(cm.exception.__cause__, TypeError)