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
Mockclass fromunittesthas a methodreset_mock, which takes optional argumentsreturn_valueandside_effect, both with default valuesFalse.In the body of
reset_mock,reset_mockis called recursively on all the_mock_childrenof theMockobject. 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
Mockobject with children that are also mocked, and methods on these have been directly mocked, then it is not enough to callreset_mockon 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