|
|
|
@ -1737,6 +1737,10 @@ class CharmapTest(unittest.TestCase): |
|
|
|
codecs.charmap_decode, b"\x00\x01\x02", "strict", "ab" |
|
|
|
) |
|
|
|
|
|
|
|
self.assertRaises(UnicodeDecodeError, |
|
|
|
codecs.charmap_decode, b"\x00\x01\x02", "strict", "ab\ufffe" |
|
|
|
) |
|
|
|
|
|
|
|
self.assertEqual( |
|
|
|
codecs.charmap_decode(b"\x00\x01\x02", "replace", "ab"), |
|
|
|
("ab\ufffd", 3) |
|
|
|
@ -1793,6 +1797,17 @@ class CharmapTest(unittest.TestCase): |
|
|
|
{0: 'a', 1: 'b'} |
|
|
|
) |
|
|
|
|
|
|
|
self.assertRaises(UnicodeDecodeError, |
|
|
|
codecs.charmap_decode, b"\x00\x01\x02", "strict", |
|
|
|
{0: 'a', 1: 'b', 2: None} |
|
|
|
) |
|
|
|
|
|
|
|
# Issue #14850 |
|
|
|
self.assertRaises(UnicodeDecodeError, |
|
|
|
codecs.charmap_decode, b"\x00\x01\x02", "strict", |
|
|
|
{0: 'a', 1: 'b', 2: '\ufffe'} |
|
|
|
) |
|
|
|
|
|
|
|
self.assertEqual( |
|
|
|
codecs.charmap_decode(b"\x00\x01\x02", "replace", |
|
|
|
{0: 'a', 1: 'b'}), |
|
|
|
@ -1805,6 +1820,13 @@ class CharmapTest(unittest.TestCase): |
|
|
|
("ab\ufffd", 3) |
|
|
|
) |
|
|
|
|
|
|
|
# Issue #14850 |
|
|
|
self.assertEqual( |
|
|
|
codecs.charmap_decode(b"\x00\x01\x02", "replace", |
|
|
|
{0: 'a', 1: 'b', 2: '\ufffe'}), |
|
|
|
("ab\ufffd", 3) |
|
|
|
) |
|
|
|
|
|
|
|
self.assertEqual( |
|
|
|
codecs.charmap_decode(b"\x00\x01\x02", "ignore", |
|
|
|
{0: 'a', 1: 'b'}), |
|
|
|
@ -1817,6 +1839,13 @@ class CharmapTest(unittest.TestCase): |
|
|
|
("ab", 3) |
|
|
|
) |
|
|
|
|
|
|
|
# Issue #14850 |
|
|
|
self.assertEqual( |
|
|
|
codecs.charmap_decode(b"\x00\x01\x02", "ignore", |
|
|
|
{0: 'a', 1: 'b', 2: '\ufffe'}), |
|
|
|
("ab", 3) |
|
|
|
) |
|
|
|
|
|
|
|
allbytes = bytes(range(256)) |
|
|
|
self.assertEqual( |
|
|
|
codecs.charmap_decode(allbytes, "ignore", {}), |
|
|
|
@ -1857,18 +1886,35 @@ class CharmapTest(unittest.TestCase): |
|
|
|
{0: a, 1: b}, |
|
|
|
) |
|
|
|
|
|
|
|
self.assertRaises(UnicodeDecodeError, |
|
|
|
codecs.charmap_decode, b"\x00\x01\x02", "strict", |
|
|
|
{0: a, 1: b, 2: 0xFFFE}, |
|
|
|
) |
|
|
|
|
|
|
|
self.assertEqual( |
|
|
|
codecs.charmap_decode(b"\x00\x01\x02", "replace", |
|
|
|
{0: a, 1: b}), |
|
|
|
("ab\ufffd", 3) |
|
|
|
) |
|
|
|
|
|
|
|
self.assertEqual( |
|
|
|
codecs.charmap_decode(b"\x00\x01\x02", "replace", |
|
|
|
{0: a, 1: b, 2: 0xFFFE}), |
|
|
|
("ab\ufffd", 3) |
|
|
|
) |
|
|
|
|
|
|
|
self.assertEqual( |
|
|
|
codecs.charmap_decode(b"\x00\x01\x02", "ignore", |
|
|
|
{0: a, 1: b}), |
|
|
|
("ab", 3) |
|
|
|
) |
|
|
|
|
|
|
|
self.assertEqual( |
|
|
|
codecs.charmap_decode(b"\x00\x01\x02", "ignore", |
|
|
|
{0: a, 1: b, 2: 0xFFFE}), |
|
|
|
("ab", 3) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
class WithStmtTest(unittest.TestCase): |
|
|
|
def test_encodedfile(self): |
|
|
|
|