Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34k
gh-138013: Remove test_io load_tests namespace manipulation#138366
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Conversation
cmaloney commented Sep 2, 2025 • edited by bedevere-app bot
Loading Uh oh!
There was an error while loading. Please reload this page.
edited by bedevere-app bot
Uh oh!
There was an error while loading. Please reload this page.
Reduce what happens in `load_tests` so that the next change, moving the `Buffered*` tests to `test_bufferdio` is purely mechanical movement and updating imports. This adds two classes, one per I/O implementation, to act as dispatch to the implementation-specific mocks as well as module members. Previously the mappings CTestCase and PyTestCase provide were injected directly during `load_tests`. CTestCase and PyTestCase inherit from `unittest.TestCase` so when the split happens default test discovery will work for the classes in `test_bufferedio`. `test_general` keeps a manual test list for this refactoring; some of the tests (ex. `ProtocolsTest`) aren't currently run and fixing that + helpers to not be picked up is out of my current scope. CTestCase and PyTestCase have an `io` class member which points to the implementation meaning that can be removed from individual test cases which now inherit from them.
This code is picking up `MockRawIO` which is defined globally in the module but these should use the mock specific to the I/O implementation being tested.
cmaloney commented Sep 2, 2025 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
Added another commit to fix a gh-133982 issue I found while testing out the split. There are a number of test classes defined inside specific test cases that were referring to |
bedevere-bot commented Sep 2, 2025
🤖 New build scheduled with the buildbot fleet by @vstinner for commit 751788f 🤖 Results will be shown at: https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F138366%2Fmerge If you want to schedule another build, you need to add the 🔨 test-with-buildbots label again. |
vstinner commented Sep 2, 2025
Done.
Done. |
vstinner left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
./python -m test test_io --list-cases output is unchanged with this change.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Remove unnecessary pass through self Co-authored-by: Victor Stinner <[email protected]>
cmaloney commented Sep 3, 2025
One bot failure buildbot/AMD64 Windows 11 Refleaks PR in |
6dd21e9 into python:mainUh oh!
There was an error while loading. Please reload this page.
vstinner commented Sep 3, 2025
Merged, thanks. |
…ython#138366) Reduce what happens in `load_tests` so that the next change, moving the `Buffered*` tests to `test_bufferdio` is purely mechanical movement and updating imports. This adds two classes, one per I/O implementation, to act as dispatch to the implementation-specific mocks as well as module members. Previously the mappings CTestCase and PyTestCase provide were injected directly during `load_tests`. CTestCase and PyTestCase inherit from `unittest.TestCase` so when the split happens default test discovery will work for the classes in `test_bufferedio`. `test_general` keeps a manual test list for this refactoring; some of the tests (ex. `ProtocolsTest`) aren't currently run and fixing that + helpers to not be picked up is out of my current scope. CTestCase and PyTestCase have an `io` class member which points to the implementation meaning that can be removed from individual test cases which now inherit from them. This code is picking up `MockRawIO` which is defined globally in the module but these should use the mock specific to the I/O implementation being tested. Co-authored-by: Victor Stinner <[email protected]>
Reduce what happens in
load_testsso that the next change, moving theBuffered*tests totest_bufferdiois purely mechanical movement and updating imports.This adds two classes, one per I/O implementation, to act as dispatch to the implementation-specific mocks as well as module members. Previously the mappings
CTestCaseandPyTestCaseprovide were injected directly duringload_tests.CTestCaseandPyTestCaseinherit fromunittest.TestCaseso when the split happens default test discovery will work for the classes intest_bufferedio.test_generalkeeps a manual test list for this refactoring; some of the tests (ex.ProtocolsTest) aren't currently run and fixing that + helpers to not be picked up as tests is out of my current scope.CTestCaseandPyTestCasehave anioclass member which points to the implementation meaning that can be removed from individual test cases which now inherit from them.Tested locally with
./python -m test test_io -uall,walltime,largefile,extralargefile -M16G -j8 -vskip newsas its a test-only change?