Conversation
bayandin
marked this pull request as ready for review
September 29, 2026 16:12
bayandin
force-pushed
the
fix/pytest-nodeid-param-separators
branch
from
September 29, 2026 17:49
ee4e58c to
8616ae1
Compare
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.
Context
Pytest node IDs use
::as structural separators, but literal::may also appear in parameter IDs and collected filesystem paths. Splitting raw node ID text therefore misclassified parameter IDs and truncated paths, causing incorrectfullName,titlePath, and suite metadata. Separately, stripping everything after[from every item name truncated non-function items such as bracketed doctest filenames.This correction intentionally changes
fullNamefor affected tests and therefore changes the derivedtestCaseIdandhistoryIdvalues. Test-plan selectors that use the previously malformed names must also be updated.The parser now derives class and function identity from pytest collector objects, takes filesystem identity from the nearest
pytest.Fileancestor while retaining the existing fallback for custom items, and preserves non-function item names verbatim.Regression tests cover the parameter ID
foo::bar, the filetest_module::part.py, and the doctest filespec[foo].txt.Checklist