-
-
Notifications
You must be signed in to change notification settings - Fork 34.1k
Description
Bug report
Bug description:
This is Lib.test.test_import:
Lib/test/test_import
├── __init__.py
├── __main__.py
├── data
└── test_lazy_imports.py
Our test finder doesn't see test_lazy_imports: #144852 (comment).
python -m test does not run test_lazy_imports at all.
We could try to keep regular import test package with lazy import test package by:
- Updating
Lib.test.libregrtest.findtests.SPLITTESTDIRSto includetest_import. - Moving
Lib/test/test_import/__init__.pytoLib/test/test_import/test_import.py. - Creating a new
Lib/test/test_import/__init__.pythat definesload_testshook that callsload_package_tests.
It is visible by now that this is a can of worms. Lib.test.test_import uses relative imports itself, so moving Lib.test.test_import to Lib.test.test_import.test_import breaks them. This means we'd need to massage Lib.test.test_import.test_import to work again, which means we'd need to modify old tests -- which I think on its own disqualifies this approach.
We can't have Lib.test.test_import and Lib.test.test_import.test_lazy_imports at the same time set up in a maintainable way, because it would involve having manual registration of test suites in test_import (or maybe in test_lazy_imports?). Perhaps we can do this cheaply, but I assume this makes these tests less self-contained and complicates the setup.
I propose we move Lib/test/test_import/test_lazy_imports.py (+data) into Lib/test/test_lazy_import/__init__.py (+data). Unless there is any other cost-effective solution to this that I've missed?
CC @pablogsal @DinoV @brittanyrey @Yhg1s @vstinner @sobolevn
CPython versions tested on:
CPython main branch
Operating systems tested on:
No response