Change pytest import mode to importlib #4950
Merged
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.
Description
Change pytest import mode to importlib
Checklist:
Rationale
Based on https://docs.pytest.org/en/7.1.x/explanation/goodpractices.html#choosing-an-import-mode :
"For historical reasons, pytest defaults to the prepend import mode instead of the importlib import mode we recommend for new projects. The reason lies in the way the prepend mode works:
Since there are no packages to derive a full package name from, pytest will import your test files as top-level modules. The test files in the first example (src layout) would be imported as test_app and test_view top-level modules by adding tests/ to sys.path.
This results in a drawback compared to the import mode importlib: your test files must have unique names. (...)
The importlib import mode does not have any of the drawbacks above, because sys.path is not changed when importing test modules.
"