Catalog hint placeholders survive a rebuild that carries only args
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
What — A catalog hint whose template interpolates a field cannot be re-rendered
by a rebuilder that carries only args, because the field is not there.
How — type(w)(*w.args) on a warning whose user_hint is "{guess} …"
renders the placeholder literally. pickle and copy.deepcopy are
unaffected: they carry extra.
Why — Under released pytest-xdist a warning crossing from a worker to the
controller is rebuilt from args alone. ArgDigest's
DigestNotDigestedWarning shows 'unknown' where the argument name
should be. Serial runs, scripts, notebooks and services are unaffected.
Record — devguide/pending_bugs/catalog_warnings_re_rendered_under_xdist.md
Blocked on pytest-dev/pytest-xdist#1372, which proposes transferring the warning
state. No class shape fixes this: the state has to travel.
The larger defect this document opened with — a catalog warning rendering as its
own template applied to its own output — was resolved in 0.13.0 and is guarded by
tests/test_catalog_instance_round_trip.py. This issue tracks only the residue.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with devguide/pending_bugs/catalog_warnings_re_rendered_under_xdist.md and the pytest-dev/pytest-xdist#1372 blocker. Compare the remaining behavior with tests/test_catalog_instance_round_trip.py, which guards the resolved adjacent defect. The issue is done when the warning state can cross the worker boundary and the catalog hint no longer renders its placeholder literally.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100