diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-05-10 01:19:54 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-10 01:19:54 (GMT) |
commit | d267ac20c309e37d85a986b4417aa8ab4d05dabc (patch) | |
tree | 701e11585f2a69916429f798895ba6fac1ec0545 /Lib/test/test_codecs.py | |
parent | 137be34180a20dba53948d126b961069f299f153 (diff) | |
download | cpython-d267ac20c309e37d85a986b4417aa8ab4d05dabc.zip cpython-d267ac20c309e37d85a986b4417aa8ab4d05dabc.tar.gz cpython-d267ac20c309e37d85a986b4417aa8ab4d05dabc.tar.bz2 |
bpo-36778: cp65001 encoding becomes an alias to utf_8 (GH-13230)
Diffstat (limited to 'Lib/test/test_codecs.py')
-rw-r--r-- | Lib/test/test_codecs.py | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py index 027a84e..8c14f59 100644 --- a/Lib/test/test_codecs.py +++ b/Lib/test/test_codecs.py @@ -875,95 +875,6 @@ class UTF8Test(ReadTest, unittest.TestCase): b"abc\xed\xa0z".decode(self.encoding, "surrogatepass") -@unittest.skipUnless(sys.platform == 'win32', - 'cp65001 is a Windows-only codec') -class CP65001Test(ReadTest, unittest.TestCase): - encoding = "cp65001" - - def test_encode(self): - tests = [ - ('abc', 'strict', b'abc'), - ('\xe9\u20ac', 'strict', b'\xc3\xa9\xe2\x82\xac'), - ('\U0010ffff', 'strict', b'\xf4\x8f\xbf\xbf'), - ('\udc80', 'strict', None), - ('\udc80', 'ignore', b''), - ('\udc80', 'replace', b'?'), - ('\udc80', 'backslashreplace', b'\\udc80'), - ('\udc80', 'namereplace', b'\\udc80'), - ('\udc80', 'surrogatepass', b'\xed\xb2\x80'), - ] - for text, errors, expected in tests: - if expected is not None: - try: - encoded = text.encode('cp65001', errors) - except UnicodeEncodeError as err: - self.fail('Unable to encode %a to cp65001 with ' - 'errors=%r: %s' % (text, errors, err)) - self.assertEqual(encoded, expected, - '%a.encode("cp65001", %r)=%a != %a' - % (text, errors, encoded, expected)) - else: - self.assertRaises(UnicodeEncodeError, - text.encode, "cp65001", errors) - - def test_decode(self): - tests = [ - (b'abc', 'strict', 'abc'), - (b'\xc3\xa9\xe2\x82\xac', 'strict', '\xe9\u20ac'), - (b'\xf4\x8f\xbf\xbf', 'strict', '\U0010ffff'), - (b'\xef\xbf\xbd', 'strict', '\ufffd'), - (b'[\xc3\xa9]', 'strict', '[\xe9]'), - # invalid bytes - (b'[\xff]', 'strict', None), - (b'[\xff]', 'ignore', '[]'), - (b'[\xff]', 'replace', '[\ufffd]'), - (b'[\xff]', 'surrogateescape', '[\udcff]'), - (b'[\xed\xb2\x80]', 'strict', None), - (b'[\xed\xb2\x80]', 'ignore', '[]'), - (b'[\xed\xb2\x80]', 'replace', '[\ufffd\ufffd\ufffd]'), - ] - for raw, errors, expected in tests: - if expected is not None: - try: - decoded = raw.decode('cp65001', errors) - except UnicodeDecodeError as err: - self.fail('Unable to decode %a from cp65001 with ' - 'errors=%r: %s' % (raw, errors, err)) - self.assertEqual(decoded, expected, - '%a.decode("cp65001", %r)=%a != %a' - % (raw, errors, decoded, expected)) - else: - self.assertRaises(UnicodeDecodeError, - raw.decode, 'cp65001', errors) - - def test_lone_surrogates(self): - self.assertRaises(UnicodeEncodeError, "\ud800".encode, "cp65001") - self.assertRaises(UnicodeDecodeError, b"\xed\xa0\x80".decode, "cp65001") - self.assertEqual("[\uDC80]".encode("cp65001", "backslashreplace"), - b'[\\udc80]') - self.assertEqual("[\uDC80]".encode("cp65001", "namereplace"), - b'[\\udc80]') - self.assertEqual("[\uDC80]".encode("cp65001", "xmlcharrefreplace"), - b'[�]') - self.assertEqual("[\uDC80]".encode("cp65001", "surrogateescape"), - b'[\x80]') - self.assertEqual("[\uDC80]".encode("cp65001", "ignore"), - b'[]') - self.assertEqual("[\uDC80]".encode("cp65001", "replace"), - b'[?]') - - def test_surrogatepass_handler(self): - self.assertEqual("abc\ud800def".encode("cp65001", "surrogatepass"), - b"abc\xed\xa0\x80def") - self.assertEqual(b"abc\xed\xa0\x80def".decode("cp65001", "surrogatepass"), - "abc\ud800def") - self.assertEqual("\U00010fff\uD800".encode("cp65001", "surrogatepass"), - b"\xf0\x90\xbf\xbf\xed\xa0\x80") - self.assertEqual(b"\xf0\x90\xbf\xbf\xed\xa0\x80".decode("cp65001", "surrogatepass"), - "\U00010fff\uD800") - self.assertTrue(codecs.lookup_error("surrogatepass")) - - class UTF7Test(ReadTest, unittest.TestCase): encoding = "utf-7" |