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