diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2011-11-15 00:42:21 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2011-11-15 00:42:21 (GMT) |
commit | 5418ee0b9a36886064937159f9c0641ae2c4f618 (patch) | |
tree | 5602bfce8d5bea5b17deee14207d2a238170489a /Lib | |
parent | c2fe57762b6cfa8849908e1a0475036cd0b058ba (diff) | |
download | cpython-5418ee0b9a36886064937159f9c0641ae2c4f618.zip cpython-5418ee0b9a36886064937159f9c0641ae2c4f618.tar.gz cpython-5418ee0b9a36886064937159f9c0641ae2c4f618.tar.bz2 |
Issue #13333: The UTF-7 decoder now accepts lone surrogates
(the encoder already accepts them).
Diffstat (limited to 'Lib')
-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 86185e9..591a297 100644 --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -1091,10 +1091,18 @@ class UnicodeTest(string_tests.CommonTest, for (x, y) in utfTests: self.assertEqual(x.encode('utf-7'), y) - # Unpaired surrogates not supported - self.assertRaises(UnicodeError, str, b'+3ADYAA-', 'utf-7') - - self.assertEqual(str(b'+3ADYAA-', 'utf-7', 'replace'), '\ufffd\ufffd') + # Unpaired surrogates are passed through + self.assertEqual('\uD801'.encode('utf-7'), b'+2AE-') + self.assertEqual('\uD801x'.encode('utf-7'), b'+2AE-x') + self.assertEqual('\uDC01'.encode('utf-7'), b'+3AE-') + self.assertEqual('\uDC01x'.encode('utf-7'), b'+3AE-x') + self.assertEqual(b'+2AE-'.decode('utf-7'), '\uD801') + self.assertEqual(b'+2AE-x'.decode('utf-7'), '\uD801x') + self.assertEqual(b'+3AE-'.decode('utf-7'), '\uDC01') + self.assertEqual(b'+3AE-x'.decode('utf-7'), '\uDC01x') + + self.assertEqual('\uD801\U000abcde'.encode('utf-7'), b'+2AHab9ze-') + self.assertEqual(b'+2AHab9ze-'.decode('utf-7'), '\uD801\U000abcde') # Issue #2242: crash on some Windows/MSVC versions self.assertEqual(b'+\xc1'.decode('utf-7'), '\xc1') |