pytest-dev / pytest-dev/pytest
Improve diffing algorithm for trivial cases
Open
Nobody has claimed this yet.
topic: rewrite
type: proposal
- Dominant language
- Python
- Stars
- 14.5k
- Forks
- 3.4k
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 35
Description
Hello there! Would improving the diff algorithm be considered / easy-to-do in this case?
E AssertionError: assert ['scaling', '...en', 'scroll'] == ['score', 'screen', 'scroll']
E At index 0 diff: 'scaling' != 'score'
E Left contains one more item: 'scroll'
E Use -v to get the full diff
>>>
E AssertionError: assert ['scaling', '...en', 'scroll'] == ['score', 'screen', 'scroll']
E At index 0 diff: 'scaling' != 'score'
E Left contains one more item: 'scroll'
E Full diff:
E - ['score', 'screen', 'scroll']
E + ['scaling', 'score', 'screen', 'scroll']
E ? +++++++++++
There's "just one more element"; not index 0 != and one more item (which is actually not the extra one).
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
The issue provides assertion-output examples but no file, test, or entry point. Start by reproducing the shown comparison and locating the pytest diffing code that formats it. Done means the output identifies the extra element and the mismatch accurately for these cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100