bpo-42065: Fix incorrectly formatted _codecs.charmap_decode error message (GH-19940)

(cherry picked from commit 3635388f52)

Co-authored-by: Max Bernstein <tekknolagi@users.noreply.github.com>
This commit is contained in:
Miss Skeleton (bot) 2020-10-17 23:16:52 -07:00 committed by GitHub
parent 8f7eab788a
commit 400175ad91
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 1 deletions

View File

@ -2183,6 +2183,18 @@ class CharmapTest(unittest.TestCase):
("", len(allbytes))
)
self.assertRaisesRegex(TypeError,
"character mapping must be in range\\(0x110000\\)",
codecs.charmap_decode,
b"\x00\x01\x02", "strict", {0: "A", 1: 'Bb', 2: -2}
)
self.assertRaisesRegex(TypeError,
"character mapping must be in range\\(0x110000\\)",
codecs.charmap_decode,
b"\x00\x01\x02", "strict", {0: "A", 1: 'Bb', 2: 999999999}
)
def test_decode_with_int2int_map(self):
a = ord('a')
b = ord('b')

View File

@ -0,0 +1,3 @@
Fix an incorrectly formatted error from :meth:`_codecs.charmap_decode` when
called with a mapped value outside the range of valid Unicode code points.
PR by Max Bernstein.

View File

@ -7998,7 +7998,7 @@ charmap_decode_mapping(const char *s,
goto Undefined;
if (value < 0 || value > MAX_UNICODE) {
PyErr_Format(PyExc_TypeError,
"character mapping must be in range(0x%lx)",
"character mapping must be in range(0x%x)",
(unsigned long)MAX_UNICODE + 1);
goto onError;
}