[pypy-svn] pypy default: *really* run the implementation in runicode.py

amauryfa commits-noreply at bitbucket.org
Tue Feb 8 18:33:00 CET 2011


Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: 
Changeset: r41705:ab67f8cf666d
Date: 2011-02-08 15:05 +0100
http://bitbucket.org/pypy/pypy/changeset/ab67f8cf666d/

Log:	*really* run the implementation in runicode.py

diff --git a/pypy/rlib/test/test_runicode.py b/pypy/rlib/test/test_runicode.py
--- a/pypy/rlib/test/test_runicode.py
+++ b/pypy/rlib/test/test_runicode.py
@@ -185,9 +185,16 @@
         assert decode(s, 5, None) == (u'a+-b', 5)
 
     def test_utf7_surrogates(self):
-        assert u'\U000abcde'.encode('utf-7') == '+2m/c3g-'
-        raises(UnicodeError, unicode, '+3ADYAA-', 'utf-7')
-        assert unicode('+3ADYAA-', 'utf-7', 'replace') == u'\ufffd\ufffd'
+        encode = self.getencoder('utf-7')
+        u = u'\U000abcde'
+        assert encode(u, len(u), None) == '+2m/c3g-'
+        decode = self.getdecoder('utf-7')
+        s = '+3ADYAA-'
+        raises(UnicodeError, decode, s, len(s), None)
+        def replace_handler(errors, codec, message, input, start, end):
+            return u'?', end
+        assert decode(s, len(s), None, final=True,
+                      errorhandler = replace_handler) == (u'??', len(s))
 
 
 class TestEncoding(UnicodeTests):


More information about the Pypy-commit mailing list