bpo-38932: Make Mock.reset_mock() pass return_value and side_effect values to reset_mock on child mock objects #17409
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue on issue tracker.
The
Mock
class fromunittest
has a methodreset_mock
, which takes optional argumentsreturn_value
andside_effect
, both with default valuesFalse
.In the body of
reset_mock
,reset_mock
is called recursively on all the_mock_children
of theMock
object. However, here the arguments are not passed. I realize this may be a feature and not a bug, but this caused some confusion in the test suite at the company where I work, where we thought we reset our mocked objects properly, but we didn't.This means that if you have a
Mock
object with children that are also mocked, and methods on these have been directly mocked, then it is not enough to callreset_mock
on the parent object.This is my first attempt at a contribution to Python. I have most likely done something wrong, and I will do my best to help further.
https://bugs.python.org/issue38932