def test_place_initial_imports(self):
     s = """'Doc string'\nother = stuff"""
     m = rewrite(s)
     assert isinstance(m.body[0], ast.Expr)
     for imp in m.body[1:3]:
         assert isinstance(imp, ast.Import)
         assert imp.lineno == 2
         assert imp.col_offset == 0
     assert isinstance(m.body[3], ast.Assign)
     s = """from __future__ import division\nother_stuff"""
     m = rewrite(s)
     assert isinstance(m.body[0], ast.ImportFrom)
     for imp in m.body[1:3]:
         assert isinstance(imp, ast.Import)
         assert imp.lineno == 2
         assert imp.col_offset == 0
     assert isinstance(m.body[3], ast.Expr)
     s = """'doc string'\nfrom __future__ import division"""
     m = rewrite(s)
     assert isinstance(m.body[0], ast.Expr)
     assert isinstance(m.body[1], ast.ImportFrom)
     for imp in m.body[2:4]:
         assert isinstance(imp, ast.Import)
         assert imp.lineno == 2
         assert imp.col_offset == 0
     s = """'doc string'\nfrom __future__ import division\nother"""
     m = rewrite(s)
     assert isinstance(m.body[0], ast.Expr)
     assert isinstance(m.body[1], ast.ImportFrom)
     for imp in m.body[2:4]:
         assert isinstance(imp, ast.Import)
         assert imp.lineno == 3
         assert imp.col_offset == 0
     assert isinstance(m.body[4], ast.Expr)
     s = """from . import relative\nother_stuff"""
     m = rewrite(s)
     for imp in m.body[:2]:
         assert isinstance(imp, ast.Import)
         assert imp.lineno == 1
         assert imp.col_offset == 0
     assert isinstance(m.body[3], ast.Expr)
Exemple #2
0
 def test_place_initial_imports(self):
     s = """'Doc string'\nother = stuff"""
     m = rewrite(s)
     adjust_body_for_new_docstring_in_module_node(m)
     for imp in m.body[0:2]:
         assert isinstance(imp, ast.Import)
         assert imp.lineno == 2
         assert imp.col_offset == 0
     assert isinstance(m.body[2], ast.Assign)
     s = """from __future__ import division\nother_stuff"""
     m = rewrite(s)
     assert isinstance(m.body[0], ast.ImportFrom)
     for imp in m.body[1:3]:
         assert isinstance(imp, ast.Import)
         assert imp.lineno == 2
         assert imp.col_offset == 0
     assert isinstance(m.body[3], ast.Expr)
     s = """'doc string'\nfrom __future__ import division"""
     m = rewrite(s)
     adjust_body_for_new_docstring_in_module_node(m)
     assert isinstance(m.body[0], ast.ImportFrom)
     for imp in m.body[1:3]:
         assert isinstance(imp, ast.Import)
         assert imp.lineno == 2
         assert imp.col_offset == 0
     s = """'doc string'\nfrom __future__ import division\nother"""
     m = rewrite(s)
     adjust_body_for_new_docstring_in_module_node(m)
     assert isinstance(m.body[0], ast.ImportFrom)
     for imp in m.body[1:3]:
         assert isinstance(imp, ast.Import)
         assert imp.lineno == 3
         assert imp.col_offset == 0
     assert isinstance(m.body[3], ast.Expr)
     s = """from . import relative\nother_stuff"""
     m = rewrite(s)
     for imp in m.body[0:2]:
         assert isinstance(imp, ast.Import)
         assert imp.lineno == 1
         assert imp.col_offset == 0
     assert isinstance(m.body[3], ast.Expr)
def getmsg(f, extra_ns=None, must_pass=False):
    """Rewrite the assertions in f, run it, and get the failure message."""
    src = "\n".join(_pytest._code.Code(f).source().lines)
    mod = rewrite(src)
    code = compile(mod, "<test>", "exec")
    ns = {}
    if extra_ns is not None:
        ns.update(extra_ns)
    exec(code, ns)
    func = ns[f.__name__]
    try:
        func()
    except AssertionError:
        if must_pass:
            pytest.fail("shouldn't have raised")
        s = str(sys.exc_info()[1])
        if not s.startswith("assert"):
            return "AssertionError: " + s
        return s
    else:
        if not must_pass:
            pytest.fail("function didn't raise at all")
Exemple #4
0
def getmsg(f, extra_ns=None, must_pass=False):
    """Rewrite the assertions in f, run it, and get the failure message."""
    src = "\n".join(_pytest._code.Code(f).source().lines)
    mod = rewrite(src)
    code = compile(mod, "<test>", "exec")
    ns = {}
    if extra_ns is not None:
        ns.update(extra_ns)
    six.exec_(code, ns)
    func = ns[f.__name__]
    try:
        func()
    except AssertionError:
        if must_pass:
            pytest.fail("shouldn't have raised")
        s = str(sys.exc_info()[1])
        if not s.startswith("assert"):
            return "AssertionError: " + s
        return s
    else:
        if not must_pass:
            pytest.fail("function didn't raise at all")
 def test_dont_rewrite(self):
     s = """'PYTEST_DONT_REWRITE'\nassert 14"""
     m = rewrite(s)
     assert len(m.body) == 2
     assert m.body[1].msg is None
Exemple #6
0
 def test_dont_rewrite(self):
     s = """'PYTEST_DONT_REWRITE'\nassert 14"""
     m = rewrite(s)
     adjust_body_for_new_docstring_in_module_node(m)
     assert len(m.body) == 1
     assert m.body[0].msg is None
Exemple #7
0
 def test_dont_rewrite(self):
     s = """'PYTEST_DONT_REWRITE'\nassert 14"""
     m = rewrite(s)
     adjust_body_for_new_docstring_in_module_node(m)
     assert len(m.body) == 1
     assert m.body[0].msg is None
 def test_dont_rewrite(self):
     s = """'PYTEST_DONT_REWRITE'\nassert 14"""
     m = rewrite(s)
     assert len(m.body) == 2
     assert m.body[1].msg is None