-
-
Notifications
You must be signed in to change notification settings - Fork 33.3k
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
Conversation
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.
|
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 |
|
🤖 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. |
Done.
Done. |
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.
Remove unnecessary pass through self Co-authored-by: Victor Stinner <[email protected]>
|
One bot failure buildbot/AMD64 Windows 11 Refleaks PR in |
|
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?