mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
bpo-35047, unittest.mock: Better error messages on assert_called_xxx failures (GH-10090)
unittest.mock now includes mock calls in exception messages if assert_not_called, assert_called_once, or assert_called_once_with fails.
This commit is contained in:
parent
18032632ab
commit
47d94241a3
4 changed files with 62 additions and 8 deletions
|
|
@ -1,4 +1,5 @@
|
|||
import copy
|
||||
import re
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
|
|
@ -407,6 +408,14 @@ class MockTest(unittest.TestCase):
|
|||
lambda: mock.assert_called_once_with('bob', 'bar', baz=2)
|
||||
)
|
||||
|
||||
def test_assert_called_once_with_call_list(self):
|
||||
m = Mock()
|
||||
m(1)
|
||||
m(2)
|
||||
self.assertRaisesRegex(AssertionError,
|
||||
re.escape("Calls: [call(1), call(2)]"),
|
||||
lambda: m.assert_called_once_with(2))
|
||||
|
||||
|
||||
def test_assert_called_once_with_function_spec(self):
|
||||
def f(a, b, c, d=None):
|
||||
|
|
@ -1250,6 +1259,13 @@ class MockTest(unittest.TestCase):
|
|||
with self.assertRaises(AssertionError):
|
||||
m.hello.assert_not_called()
|
||||
|
||||
def test_assert_not_called_message(self):
|
||||
m = Mock()
|
||||
m(1, 2)
|
||||
self.assertRaisesRegex(AssertionError,
|
||||
re.escape("Calls: [call(1, 2)]"),
|
||||
m.assert_not_called)
|
||||
|
||||
def test_assert_called(self):
|
||||
m = Mock()
|
||||
with self.assertRaises(AssertionError):
|
||||
|
|
@ -1271,6 +1287,20 @@ class MockTest(unittest.TestCase):
|
|||
with self.assertRaises(AssertionError):
|
||||
m.hello.assert_called_once()
|
||||
|
||||
def test_assert_called_once_message(self):
|
||||
m = Mock()
|
||||
m(1, 2)
|
||||
m(3)
|
||||
self.assertRaisesRegex(AssertionError,
|
||||
re.escape("Calls: [call(1, 2), call(3)]"),
|
||||
m.assert_called_once)
|
||||
|
||||
def test_assert_called_once_message_not_called(self):
|
||||
m = Mock()
|
||||
with self.assertRaises(AssertionError) as e:
|
||||
m.assert_called_once()
|
||||
self.assertNotIn("Calls:", str(e.exception))
|
||||
|
||||
#Issue21256 printout of keyword args should be in deterministic order
|
||||
def test_sorted_call_signature(self):
|
||||
m = Mock()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue