fix unittest.mock: make mock_open.__exit__ accept variable args#150535
Open
hahahuy wants to merge 1 commit into
Open
fix unittest.mock: make mock_open.__exit__ accept variable args#150535hahahuy wants to merge 1 commit into
hahahuy wants to merge 1 commit into
Conversation
Fixes gh#150484. ExitStack.__exit__ in Python 3.13 passes 4 args (exc_info tuple) but mock_open's _exit_side_effect only accepted 3. Changed _exit_side_effect to accept *exc_details to handle all Python versions.
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
|
The following commit authors need to sign the Contributor License Agreement: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fix: mock_open.exit must accept variable args
Fixes gh#150484.
Problem
In Python 3.13+, using
mock.mock_open()withcontextlib.ExitStackraises:ExitStack.__exit__passes the full exc_info tuple (4 args) but_exit_side_effectonly accepted 3.Fix
Changed
_exit_side_effect(exctype, excinst, exctb)to_exit_side_effect(*exc_details)— accepts variable args to handle allPython versions.
Test
Added
test_mock_open_exit_stack_issue_150484regression test.