diff --git a/CHANGELOG b/CHANGELOG index fba88ce95..1dde1aefd 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,8 @@ 2.8.0.dev (compared to 2.7.X) ----------------------------- +- fix issue735: assertion failures on debug versions of Python 3.4+ + - change test module importing behaviour to append to sys.path instead of prepending. This better allows to run test modules against installated versions of a package even if the package diff --git a/_pytest/assertion/rewrite.py b/_pytest/assertion/rewrite.py index f965ba2c3..62046d146 100644 --- a/_pytest/assertion/rewrite.py +++ b/_pytest/assertion/rewrite.py @@ -442,6 +442,13 @@ binop_map = { ast.NotIn: "not in" } +# Python 3.4+ compatibility +if hasattr(ast, "NameConstant"): + _NameConstant = ast.NameConstant +else: + def _NameConstant(c): + return ast.Name(str(c), ast.Load()) + def set_location(node, lineno, col_offset): """Set node location information recursively.""" @@ -680,7 +687,7 @@ class AssertionRewriter(ast.NodeVisitor): if self.variables: variables = [ast.Name(name, ast.Store()) for name in self.variables] - clear = ast.Assign(variables, ast.Name("None", ast.Load())) + clear = ast.Assign(variables, _NameConstant(None)) self.statements.append(clear) # Fix line numbers. for stmt in self.statements: