From f852bf97ef45e10f37938434c84b58d65b1b9a7e Mon Sep 17 00:00:00 2001 From: Alexandre Vassalotti Date: Sat, 27 Dec 2008 07:08:47 +0000 Subject: Fix issue #4730: cPickle corrupts high-unicode strings. Update outdated copy of PyUnicode_EncodeRawUnicodeEscape. Add a test case. --- Lib/test/pickletester.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'Lib/test/pickletester.py') diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index bf9bca78f9..bf25245bd1 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -480,14 +480,21 @@ class AbstractPickleTests(unittest.TestCase): if have_unicode: def test_unicode(self): - endcases = [unicode(''), unicode('<\\u>'), unicode('<\\\u1234>'), - unicode('<\n>'), unicode('<\\>')] + endcases = [u'', u'<\\u>', u'<\\\\u1234>', u'<\n>', + u'<\\>', u'<\\\\U00012345>'] for proto in protocols: for u in endcases: p = self.dumps(u, proto) u2 = self.loads(p) self.assertEqual(u2, u) + def test_unicode_high_plane(self): + t = u'\U00012345' + for proto in protocols: + p = self.dumps(t, proto) + t2 = self.loads(p) + self.assertEqual(t2, t) + def test_ints(self): import sys for proto in protocols: -- cgit v1.2.1