Skip to content

Fix #14902: disambiguate duplicate report headings - #14946

Open
timothyanderson096-ocdealcheck wants to merge 1 commit into
pytest-dev:mainfrom
timothyanderson096-ocdealcheck:fix-14902-disambiguate-report-headings
Open

Fix #14902: disambiguate duplicate report headings#14946
timothyanderson096-ocdealcheck wants to merge 1 commit into
pytest-dev:mainfrom
timothyanderson096-ocdealcheck:fix-14902-disambiguate-report-headings

Conversation

@timothyanderson096-ocdealcheck

Copy link
Copy Markdown

Closes #14902.

When multiple tests share the same function name, their terminal error or failure sections currently receive identical headings. This makes it difficult to tell which traceback belongs to which test.

This change counts the headings in each summary and uses the test's cwd-relative node ID only when a heading is duplicated. Unique headings retain the existing concise output. Error phases are counted separately so setup and teardown reports remain naturally distinct.

Regression coverage verifies duplicate setup-error headings and duplicate failure headings across two test files.

Validation:

  • python -m pytest -q testing/test_terminal.py — 222 passed, 9 skipped
  • pre-commit run --files AUTHORS changelog/14902.bugfix.rst src/_pytest/terminal.py testing/test_terminal.py --show-diff-on-failure — passed

AI assistance: Codex assisted with reproducing the issue, implementing the change, and running validation. I reviewed the resulting behavior and test evidence and take responsibility for the contribution.

@psf-chronographer psf-chronographer Bot added the bot:chronographer:provided (automation) changelog entry is part of PR label Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot:chronographer:provided (automation) changelog entry is part of PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

"ERROR at" test case name headings ambiguous if they use the same test case function name

1 participant