Author: Antonio Cuni <[email protected]>
Branch: py3k
Changeset: r51733:0b17ddaa8c4f
Date: 2012-01-24 18:25 +0100
http://bitbucket.org/pypy/pypy/changeset/0b17ddaa8c4f/
Log: the repr of builtin types changed in python3, so we can no longer
rely on the host python to know the exepected repr of some
expressions
diff --git a/pypy/interpreter/astcompiler/test/test_compiler.py
b/pypy/interpreter/astcompiler/test/test_compiler.py
--- a/pypy/interpreter/astcompiler/test/test_compiler.py
+++ b/pypy/interpreter/astcompiler/test/test_compiler.py
@@ -53,6 +53,20 @@
code.exec_code(space, w_dict, w_dict)
return w_dict
+ # on Python3 some reprs are different than Python2. Here is a collection
+ # of how the repr should be on on Python3 for some objects
+ PY3_REPR = {
+ int: "<class 'int'>",
+ float: "<class 'float'>",
+ }
+
+ def get_py3_repr(self, val):
+ try:
+ return self.PY3_REPR.get(val, repr(val))
+ except TypeError:
+ # e.g., for unhashable types
+ return repr(val)
+
def check(self, w_dict, evalexpr, expected):
# for now, we compile evalexpr with CPython's compiler but run
# it with our own interpreter to extract the data from w_dict
@@ -61,8 +75,9 @@
pyco_expr = PyCode._from_code(space, co_expr)
w_res = pyco_expr.exec_host_bytecode(w_dict, w_dict)
res = space.str_w(space.repr(w_res))
+ expected_repr = self.get_py3_repr(expected)
if not isinstance(expected, float):
- assert res == repr(expected)
+ assert res == expected_repr
else:
# Float representation can vary a bit between interpreter
# versions, compare the numbers instead.
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit