7eee5c1634
`reportinfo()` is the last remaining py.path-only code path in pytest, i.e. the last piece holding back py.path deprecation. The problem with it is that plugins/users use it from both sides -- implementing it (returning the value) and using it (using the return value). Dealing with implementers is easy enough -- allow to return `os.PathLike[str]`. But for callers who expect strictly `py.path` this will break and there's not really a good way to provide backward compat for this. From analyzing a corpus of 680 pytest plugins, the vast majority of `reportinfo` appearances are implementations, and the few callers don't actually access the path part of the return tuple. As for test suites that might access `reportinfo` (e.g. using `request.node.reportinfo()` or other ways), that is much harder to survey, but from the ones I searched, I only found case (`pytest_teamcity`, but even then it uses `str(fspath)` so is unlikely to be affected in practice). They are better served with using `node.location` or `node.path` directly. Therefore, just break it and change the return type to `str|os.PathLike[str]`. Refs #7259. |
||
---|---|---|
.. | ||
assertion | ||
fixtures | ||
nonpython | ||
attic.rst | ||
conftest.py | ||
index.rst | ||
markers.rst | ||
multipython.py | ||
nonpython.rst | ||
parametrize.rst | ||
pythoncollection.py | ||
pythoncollection.rst | ||
reportingdemo.rst | ||
simple.rst | ||
special.rst | ||
xfail_demo.py |