Fix internal assert failure regression in 5.3.4 #6518
Merged
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.
This reverts commit 930a158 (pr #6511).
Fixes #6517.
The assert is failing on a real test suite. Basically, I was sure the assert was safe because the
_node_location_to_relpath
cache that the value is passed into is only designed to work withpy.path.local
s, notstr
s, and code-wise if given anstr
, it would fail. Or so I thought. Turns out several less-than-nice things combined to mislead me:py.path.local
functionbestrelpath
is wrapped in a gianttry...except AttributeError
which masks any wrong types.py.path.local
has an__eq__
implementation that can compare true with anstr
:py.path.local('/foo') == '/foo'
is true.py.path.local
, so thebestrelpath
code actually does run withpy.path.local
s. When anstr
comes in which compares true with a previouspy.path.local
, it seems like everything's fine.Anyway, can look into these things later 😨 , but for now, better to just revert the offending commit to fix people's tests.