summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorAlexandre Vassalotti <alexandre@peadrop.com>2008-12-27 07:08:47 (GMT)
committerAlexandre Vassalotti <alexandre@peadrop.com>2008-12-27 07:08:47 (GMT)
commitf852bf97ef45e10f37938434c84b58d65b1b9a7e (patch)
tree439a2c1f154f37c6600e436b7f12e971d295552c /Lib
parent034e08ce8daafb61bfc8e3f7c6e3b6194e05dd78 (diff)
downloadcpython-f852bf97ef45e10f37938434c84b58d65b1b9a7e.zip
cpython-f852bf97ef45e10f37938434c84b58d65b1b9a7e.tar.gz
cpython-f852bf97ef45e10f37938434c84b58d65b1b9a7e.tar.bz2
Fix issue #4730: cPickle corrupts high-unicode strings.
Update outdated copy of PyUnicode_EncodeRawUnicodeEscape. Add a test case.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/pickletester.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py
index bf9bca7..bf25245 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: