mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
Issue #21271: Adds new keyword only parameters in reset_mock call
We now have two keyword only parameters in the reset_mock function to selectively reset the return_value or the side_effects, or both.
This commit is contained in:
parent
e2e71685f3
commit
9cd39a170b
4 changed files with 36 additions and 3 deletions
|
@ -523,7 +523,7 @@ class NonCallableMock(Base):
|
|||
side_effect = property(__get_side_effect, __set_side_effect)
|
||||
|
||||
|
||||
def reset_mock(self, visited=None):
|
||||
def reset_mock(self, visited=None,*, return_value=False, side_effect=False):
|
||||
"Restore the mock object to its initial state."
|
||||
if visited is None:
|
||||
visited = []
|
||||
|
@ -538,6 +538,11 @@ class NonCallableMock(Base):
|
|||
self.call_args_list = _CallList()
|
||||
self.method_calls = _CallList()
|
||||
|
||||
if return_value:
|
||||
self._mock_return_value = DEFAULT
|
||||
if side_effect:
|
||||
self._mock_side_effect = None
|
||||
|
||||
for child in self._mock_children.values():
|
||||
if isinstance(child, _SpecState):
|
||||
continue
|
||||
|
|
|
@ -1277,6 +1277,24 @@ class MockTest(unittest.TestCase):
|
|||
self.assertEqual(m.method_calls[0], c)
|
||||
self.assertEqual(m.method_calls[1], i)
|
||||
|
||||
def test_reset_return_sideeffect(self):
|
||||
m = Mock(return_value=10, side_effect=[2,3])
|
||||
m.reset_mock(return_value=True, side_effect=True)
|
||||
self.assertIsInstance(m.return_value, Mock)
|
||||
self.assertEqual(m.side_effect, None)
|
||||
|
||||
def test_reset_return(self):
|
||||
m = Mock(return_value=10, side_effect=[2,3])
|
||||
m.reset_mock(return_value=True)
|
||||
self.assertIsInstance(m.return_value, Mock)
|
||||
self.assertNotEqual(m.side_effect, None)
|
||||
|
||||
def test_reset_sideeffect(self):
|
||||
m = Mock(return_value=10, side_effect=[2,3])
|
||||
m.reset_mock(side_effect=True)
|
||||
self.assertEqual(m.return_value, 10)
|
||||
self.assertEqual(m.side_effect, None)
|
||||
|
||||
def test_mock_add_spec(self):
|
||||
class _One(object):
|
||||
one = 1
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue