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_TAIL = "." + PYTEST_TAG + PYC_EXT
|
||||
|
||||
AST_IS = ast.Is()
|
||||
AST_NONE = ast.NameConstant(None)
|
||||
|
||||
|
||||
class AssertionRewritingHook:
|
||||
"""PEP302/PEP451 import hook which rewrites asserts."""
|
||||
|
@ -857,7 +854,7 @@ class AssertionRewriter(ast.NodeVisitor):
|
|||
internally already.
|
||||
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(
|
||||
"""\
|
||||
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"):
|
||||
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