Code/getfslineno: keep empty co_filename
Previously this would be turned via `py.path.local("")` into the current working directory. This appears to be what `fspath = fn and py.path.local(fn) or None` tries to avoid in `getfslineno`'s `TypeError` handling already, if `Code` would raise it.
This commit is contained in:
parent
b0d45267c5
commit
61f2a26675
|
@ -72,6 +72,8 @@ class Code:
|
|||
""" return a path object pointing to source code (or a str in case
|
||||
of OSError / non-existing file).
|
||||
"""
|
||||
if not self.raw.co_filename:
|
||||
return ""
|
||||
try:
|
||||
p = py.path.local(self.raw.co_filename)
|
||||
# maybe don't try this checking
|
||||
|
|
|
@ -524,6 +524,14 @@ def test_getfslineno() -> None:
|
|||
B.__name__ = "B2"
|
||||
assert getfslineno(B)[1] == -1
|
||||
|
||||
co = compile("...", "", "eval")
|
||||
assert co.co_filename == ""
|
||||
|
||||
if hasattr(sys, "pypy_version_info"):
|
||||
assert getfslineno(co) == ("", -1)
|
||||
else:
|
||||
assert getfslineno(co) == ("", 0)
|
||||
|
||||
|
||||
def test_code_of_object_instance_with_call() -> None:
|
||||
class A:
|
||||
|
|
Loading…
Reference in New Issue