diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2011-11-15 01:49:40 +0100 |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2011-11-15 01:49:40 +0100 |
commit | 30402549de68a5303a5e2995dca7375d3d17966f (patch) | |
tree | d58a964054da32b13020849f51191a6264f6c7e3 /Lib/test/test_unicode.py | |
parent | 16ed86831bc44cc54abf6af634b6e9be91d8a3b3 (diff) | |
download | cpython-git-30402549de68a5303a5e2995dca7375d3d17966f.tar.gz |
Issue #13333: The UTF-7 decoder now accepts lone surrogates
(the encoder already accepts them).
Diffstat (limited to 'Lib/test/test_unicode.py')
-rw-r--r-- | Lib/test/test_unicode.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py index 399eed7e31..5c1858c9b4 100644 --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -771,10 +771,18 @@ class UnicodeTest( for (x, y) in utfTests: self.assertEqual(x.encode('utf-7'), y) - # Unpaired surrogates not supported - self.assertRaises(UnicodeError, unicode, '+3ADYAA-', 'utf-7') - - self.assertEqual(unicode('+3ADYAA-', 'utf-7', 'replace'), u'\ufffd\ufffd') + # Unpaired surrogates are passed through + self.assertEqual(u'\uD801'.encode('utf-7'), '+2AE-') + self.assertEqual(u'\uD801x'.encode('utf-7'), '+2AE-x') + self.assertEqual(u'\uDC01'.encode('utf-7'), '+3AE-') + self.assertEqual(u'\uDC01x'.encode('utf-7'), '+3AE-x') + self.assertEqual('+2AE-'.decode('utf-7'), u'\uD801') + self.assertEqual('+2AE-x'.decode('utf-7'), u'\uD801x') + self.assertEqual('+3AE-'.decode('utf-7'), u'\uDC01') + self.assertEqual('+3AE-x'.decode('utf-7'), u'\uDC01x') + + self.assertEqual(u'\uD801\U000abcde'.encode('utf-7'), '+2AHab9ze-') + self.assertEqual('+2AHab9ze-'.decode('utf-7'), u'\uD801\U000abcde') # Direct encoded characters set_d = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?" |