Fix wrong location of assertion error with coverage.py
Reverts using-constant part from 39ba99613
.
Fixes https://github.com/pytest-dev/pytest/issues/5754.
This commit is contained in:
parent
c3a8e609f9
commit
05bfe73cf9
|
@ -33,9 +33,6 @@ PYTEST_TAG = "{}-pytest-{}".format(sys.implementation.cache_tag, version)
|
||||||
PYC_EXT = ".py" + (__debug__ and "c" or "o")
|
PYC_EXT = ".py" + (__debug__ and "c" or "o")
|
||||||
PYC_TAIL = "." + PYTEST_TAG + PYC_EXT
|
PYC_TAIL = "." + PYTEST_TAG + PYC_EXT
|
||||||
|
|
||||||
AST_IS = ast.Is()
|
|
||||||
AST_NONE = ast.NameConstant(None)
|
|
||||||
|
|
||||||
|
|
||||||
class AssertionRewritingHook:
|
class AssertionRewritingHook:
|
||||||
"""PEP302/PEP451 import hook which rewrites asserts."""
|
"""PEP302/PEP451 import hook which rewrites asserts."""
|
||||||
|
@ -857,7 +854,7 @@ class AssertionRewriter(ast.NodeVisitor):
|
||||||
internally already.
|
internally already.
|
||||||
See issue #3191 for more details.
|
See issue #3191 for more details.
|
||||||
"""
|
"""
|
||||||
val_is_none = ast.Compare(node, [AST_IS], [AST_NONE])
|
val_is_none = ast.Compare(node, [ast.Is()], [ast.NameConstant(None)])
|
||||||
send_warning = ast.parse(
|
send_warning = ast.parse(
|
||||||
"""\
|
"""\
|
||||||
from _pytest.warning_types import PytestAssertRewriteWarning
|
from _pytest.warning_types import PytestAssertRewriteWarning
|
||||||
|
|
|
@ -1302,3 +1302,23 @@ def test_exit_from_assertrepr_compare(monkeypatch):
|
||||||
|
|
||||||
with pytest.raises(outcomes.Exit, match="Quitting debugger"):
|
with pytest.raises(outcomes.Exit, match="Quitting debugger"):
|
||||||
callequal(1, 1)
|
callequal(1, 1)
|
||||||
|
|
||||||
|
|
||||||
|
def test_assertion_location_with_coverage(testdir):
|
||||||
|
"""This used to report the wrong location when run with coverage (#5754)."""
|
||||||
|
p = testdir.makepyfile(
|
||||||
|
"""
|
||||||
|
def test():
|
||||||
|
assert False, 1
|
||||||
|
assert False, 2
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
result = testdir.runpytest(str(p))
|
||||||
|
result.stdout.fnmatch_lines(
|
||||||
|
[
|
||||||
|
"> assert False, 1",
|
||||||
|
"E AssertionError: 1",
|
||||||
|
"E assert False",
|
||||||
|
"*= 1 failed in*",
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
Loading…
Reference in New Issue