[pypy-commit] pypy py3k: after one day of investigation, add support for unicode characters inside the 'raises' function in apptests. The test still fails because we don't fully support unicode error messages

antocuni noreply at buildbot.pypy.org
Fri Jan 27 00:31:34 CET 2012


Author: Antonio Cuni <anto.cuni at gmail.com>
Branch: py3k
Changeset: r51830:f93127358305
Date: 2012-01-26 16:28 +0100
http://bitbucket.org/pypy/pypy/changeset/f93127358305/

Log:	after one day of investigation, add support for unicode characters
	inside the 'raises' function in apptests. The test still fails
	because we don't fully support unicode error messages

diff --git a/pypy/interpreter/test/test_argument.py b/pypy/interpreter/test/test_argument.py
--- a/pypy/interpreter/test/test_argument.py
+++ b/pypy/interpreter/test/test_argument.py
@@ -589,12 +589,18 @@
         assert exc.value.message == "<lambda>() takes exactly 2 non-keyword arguments (0 given)"
 
     def test_unicode_keywords(self):
+        """
         def f(**kwargs):
-            assert kwargs[u"&#32654;"] == 42
-        f(**{u"&#32654;" : 42})
+            assert kwargs["&#32654;"] == 42
+        f(**{"&#32654;" : 42})
+        #
+        # XXX: the following test fails because we cannot have error messages
+        # with unicode characters yet, and it tries to build a message like:
+        # "f() got an unexpected keyword argument '&#252;'"
         def f(x): pass
-        e = raises(TypeError, "f(**{u'&#252;' : 19})")
+        e = raises(TypeError, "f(**{'&#252;' : 19})")
         assert "?" in str(e.value)
+        """
 
 def make_arguments_for_translation(space, args_w, keywords_w={},
                                    w_stararg=None, w_starstararg=None):
diff --git a/pypy/tool/pytest/appsupport.py b/pypy/tool/pytest/appsupport.py
--- a/pypy/tool/pytest/appsupport.py
+++ b/pypy/tool/pytest/appsupport.py
@@ -236,7 +236,7 @@
         #if filename.endswith("pyc"):
         #    filename = filename[:-1]
         try:
-            space.exec_(str(source), frame.w_globals, w_locals,
+            space.exec_(unicode(source).encode('utf-8'), frame.w_globals, w_locals,
                         filename=filename)
         except OperationError, e:
             if e.match(space, w_ExpectedException):


More information about the pypy-commit mailing list