fix unittest.mock: make mock_open.__exit__ accept variable args (gh-150484)#150535
fix unittest.mock: make mock_open.__exit__ accept variable args (gh-150484)#150535hahahuy wants to merge 2 commits into
Conversation
|
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 |
|
Please rebase and get the tests passing. |
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.
2988a35 to
735d823
Compare
|
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 CI failures on this PR (Windows, macOS, Ubuntu builds, TSan) are pre-existing — the |
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.