mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
Issue #13333: The UTF-7 decoder now accepts lone surrogates
(the encoder already accepts them).
This commit is contained in:
parent
c2fe57762b
commit
5418ee0b9a
3 changed files with 19 additions and 12 deletions
|
@ -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')
|
||||
# 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(str(b'+3ADYAA-', 'utf-7', 'replace'), '\ufffd\ufffd')
|
||||
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')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue