Merged in issue735 (pull request #302)

use NameConstant node when it exists (fixes #735)
This commit is contained in:
holger krekel 2015-06-04 07:48:53 +02:00
commit 304fc4f222
2 changed files with 10 additions and 1 deletions

View File

@ -1,6 +1,8 @@
2.8.0.dev (compared to 2.7.X) 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 - change test module importing behaviour to append to sys.path
instead of prepending. This better allows to run test modules instead of prepending. This better allows to run test modules
against installated versions of a package even if the package against installated versions of a package even if the package

View File

@ -442,6 +442,13 @@ binop_map = {
ast.NotIn: "not in" 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): def set_location(node, lineno, col_offset):
"""Set node location information recursively.""" """Set node location information recursively."""
@ -680,7 +687,7 @@ class AssertionRewriter(ast.NodeVisitor):
if self.variables: if self.variables:
variables = [ast.Name(name, ast.Store()) variables = [ast.Name(name, ast.Store())
for name in self.variables] for name in self.variables]
clear = ast.Assign(variables, ast.Name("None", ast.Load())) clear = ast.Assign(variables, _NameConstant(None))
self.statements.append(clear) self.statements.append(clear)
# Fix line numbers. # Fix line numbers.
for stmt in self.statements: for stmt in self.statements: