Skip to content
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

Addopt --import-mode=importlib for pytest to prevent errors with importlib.metadata #203

Merged
merged 2 commits into from
Sep 23, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ all = [
store = ["validate-pyproject-schema-store"]
testing = [
"setuptools",
"pytest",
"pytest>=8.3.3",
"pytest-cov",
"pytest-xdist",
"pytest-randomly",
Expand Down Expand Up @@ -67,11 +67,12 @@ version_scheme = "no-guess-dev"

[tool.pytest.ini_options]
addopts = """
--import-mode importlib
--cov validate_pyproject
--cov-report term-missing
--doctest-modules
--verbose
--strict-markers
--verbose
"""
norecursedirs = ["dist", "build", ".tox"]
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably having both norecursedirs and testpaths is redundant... (Note however that norecursedirs would give a wider selection of files to test (including for example docs).

docs/conf.py may be dangerous to evaluate as it adds the src folder to sys.path and as established in #200 that causes problems with importlib.metadata.

So we probably just want to remove norecursedirs in a follow-up PR.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, I don’t believe they are redundant, because you can manually pass in testpaths. That setting is just a default, while this one makes sure that things that might contain tests (like virtual environments) never get picked up.

testpaths = ["src", "tests"]
Expand Down
Empty file added tests/pre_compile/__init__.py
Empty file.
1 change: 0 additions & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ extras =
all
testing
commands =
pytest --doctest-modules src
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removing the redundancy.

pytest {posargs}


Expand Down