Exclude parametrize pseudo-fixtures from --fixtures-per-test#13883
Closed
FazeelUsmani wants to merge 1 commit intopytest-dev:mainfrom
Closed
Conversation
…ures-per-test Previously, pytest --fixtures-per-test would display parameter names from @pytest.mark.parametrize decorators as if they were real fixtures, showing them with "no docstring available" and pointing to internal pytest code. This fix uses the existing _get_direct_parametrize_args() function to identify and exclude these pseudo-fixtures from the --fixtures-per-test output, ensuring only actual user-defined fixtures are displayed. Changes: - Modified _show_fixtures_per_test() to filter out parametrize arguments - Added regression test to verify pseudo-fixtures are excluded
Member
|
There's #12129 already open for this (and linked in the issue) for what it's worth. On first sight, this seems a bit simpler, but I haven't looked into things in detail yet. |
Contributor
Author
|
@The-Compiler I see. Let me close this PR. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Previously,
pytest --fixtures-per-testwould display parameter names from@pytest.mark.parametrizedecorators as if they were real fixtures, showing them with "no docstring available" and pointing to internal pytest code (_pytest/python.py).This fix uses the existing
_get_direct_parametrize_args()function to identify and exclude these pseudo-fixtures from the--fixtures-per-testoutput, ensuring only actual user-defined fixtures are displayed.Example
Before this fix:
------------------ fixtures used by test_example[1] ------------------- real_fixture -- test_file.py:3 A real fixture. x -- .../_pytest/python.py:1110 ← Should not appear no docstring available
After this fix:
------------------ fixtures used by test_example[1] ------------------- real_fixture -- test_file.py:3 A real fixture.
Changes
_show_fixtures_per_test()insrc/_pytest/fixtures.pyto filter out parametrize argumentstest_parametrize_pseudo_fixtures_excludedto verify pseudo-fixtures are excludedCloses #11295