mirror of https://github.com/python/cpython
Use non-zero and non-last positions in error handler tests.
This commit is contained in:
commit
b8a78d3d85
|
@ -467,18 +467,18 @@ class CodecCallbackTest(unittest.TestCase):
|
||||||
# If the correct exception is passed in, "ignore" returns an empty replacement
|
# If the correct exception is passed in, "ignore" returns an empty replacement
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
codecs.ignore_errors(
|
codecs.ignore_errors(
|
||||||
UnicodeEncodeError("ascii", "\u3042", 0, 1, "ouch")),
|
UnicodeEncodeError("ascii", "a\u3042b", 1, 2, "ouch")),
|
||||||
("", 1)
|
("", 2)
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
codecs.ignore_errors(
|
codecs.ignore_errors(
|
||||||
UnicodeDecodeError("ascii", bytearray(b"\xff"), 0, 1, "ouch")),
|
UnicodeDecodeError("ascii", bytearray(b"a\xffb"), 1, 2, "ouch")),
|
||||||
("", 1)
|
("", 2)
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
codecs.ignore_errors(
|
codecs.ignore_errors(
|
||||||
UnicodeTranslateError("\u3042", 0, 1, "ouch")),
|
UnicodeTranslateError("a\u3042b", 1, 2, "ouch")),
|
||||||
("", 1)
|
("", 2)
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_badandgoodreplaceexceptions(self):
|
def test_badandgoodreplaceexceptions(self):
|
||||||
|
@ -507,18 +507,18 @@ class CodecCallbackTest(unittest.TestCase):
|
||||||
# With the correct exception, "replace" returns an "?" or "\ufffd" replacement
|
# With the correct exception, "replace" returns an "?" or "\ufffd" replacement
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
codecs.replace_errors(
|
codecs.replace_errors(
|
||||||
UnicodeEncodeError("ascii", "\u3042", 0, 1, "ouch")),
|
UnicodeEncodeError("ascii", "a\u3042b", 1, 2, "ouch")),
|
||||||
("?", 1)
|
("?", 2)
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
codecs.replace_errors(
|
codecs.replace_errors(
|
||||||
UnicodeDecodeError("ascii", bytearray(b"\xff"), 0, 1, "ouch")),
|
UnicodeDecodeError("ascii", bytearray(b"a\xffb"), 1, 2, "ouch")),
|
||||||
("\ufffd", 1)
|
("\ufffd", 2)
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
codecs.replace_errors(
|
codecs.replace_errors(
|
||||||
UnicodeTranslateError("\u3042", 0, 1, "ouch")),
|
UnicodeTranslateError("a\u3042b", 1, 2, "ouch")),
|
||||||
("\ufffd", 1)
|
("\ufffd", 2)
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_badandgoodxmlcharrefreplaceexceptions(self):
|
def test_badandgoodxmlcharrefreplaceexceptions(self):
|
||||||
|
@ -552,9 +552,10 @@ class CodecCallbackTest(unittest.TestCase):
|
||||||
s = "".join(chr(c) for c in cs)
|
s = "".join(chr(c) for c in cs)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
codecs.xmlcharrefreplace_errors(
|
codecs.xmlcharrefreplace_errors(
|
||||||
UnicodeEncodeError("ascii", s, 0, len(s), "ouch")
|
UnicodeEncodeError("ascii", "a" + s + "b",
|
||||||
|
1, 1 + len(s), "ouch")
|
||||||
),
|
),
|
||||||
("".join("&#%d;" % c for c in cs), len(s))
|
("".join("&#%d;" % c for c in cs), 1 + len(s))
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_badandgoodbackslashreplaceexceptions(self):
|
def test_badandgoodbackslashreplaceexceptions(self):
|
||||||
|
@ -590,13 +591,15 @@ class CodecCallbackTest(unittest.TestCase):
|
||||||
with self.subTest(str=s):
|
with self.subTest(str=s):
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
codecs.backslashreplace_errors(
|
codecs.backslashreplace_errors(
|
||||||
UnicodeEncodeError("ascii", s, 0, len(s), "ouch")),
|
UnicodeEncodeError("ascii", "a" + s + "b",
|
||||||
(r, len(s))
|
1, 1 + len(s), "ouch")),
|
||||||
|
(r, 1 + len(s))
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
codecs.backslashreplace_errors(
|
codecs.backslashreplace_errors(
|
||||||
UnicodeTranslateError(s, 0, len(s), "ouch")),
|
UnicodeTranslateError("a" + s + "b",
|
||||||
(r, len(s))
|
1, 1 + len(s), "ouch")),
|
||||||
|
(r, 1 + len(s))
|
||||||
)
|
)
|
||||||
tests = [
|
tests = [
|
||||||
(b"a", "\\x61"),
|
(b"a", "\\x61"),
|
||||||
|
@ -608,8 +611,9 @@ class CodecCallbackTest(unittest.TestCase):
|
||||||
with self.subTest(bytes=b):
|
with self.subTest(bytes=b):
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
codecs.backslashreplace_errors(
|
codecs.backslashreplace_errors(
|
||||||
UnicodeDecodeError("ascii", bytearray(b), 0, 1, "ouch")),
|
UnicodeDecodeError("ascii", bytearray(b"a" + b + b"b"),
|
||||||
(r, 1)
|
1, 2, "ouch")),
|
||||||
|
(r, 2)
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_badandgoodnamereplaceexceptions(self):
|
def test_badandgoodnamereplaceexceptions(self):
|
||||||
|
@ -653,8 +657,9 @@ class CodecCallbackTest(unittest.TestCase):
|
||||||
with self.subTest(str=s):
|
with self.subTest(str=s):
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
codecs.namereplace_errors(
|
codecs.namereplace_errors(
|
||||||
UnicodeEncodeError("ascii", s, 0, len(s), "ouch")),
|
UnicodeEncodeError("ascii", "a" + s + "b",
|
||||||
(r, len(s))
|
1, 1 + len(s), "ouch")),
|
||||||
|
(r, 1 + len(s))
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_badandgoodsurrogateescapeexceptions(self):
|
def test_badandgoodsurrogateescapeexceptions(self):
|
||||||
|
@ -687,8 +692,8 @@ class CodecCallbackTest(unittest.TestCase):
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
surrogateescape_errors(
|
surrogateescape_errors(
|
||||||
UnicodeEncodeError("ascii", "\udc80", 0, 1, "ouch")),
|
UnicodeEncodeError("ascii", "a\udc80b", 1, 2, "ouch")),
|
||||||
(b"\x80", 1)
|
(b"\x80", 2)
|
||||||
)
|
)
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
UnicodeDecodeError,
|
UnicodeDecodeError,
|
||||||
|
@ -697,8 +702,8 @@ class CodecCallbackTest(unittest.TestCase):
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
surrogateescape_errors(
|
surrogateescape_errors(
|
||||||
UnicodeDecodeError("ascii", bytearray(b"\x80"), 0, 1, "ouch")),
|
UnicodeDecodeError("ascii", bytearray(b"a\x80b"), 1, 2, "ouch")),
|
||||||
("\udc80", 1)
|
("\udc80", 2)
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_badandgoodsurrogatepassexceptions(self):
|
def test_badandgoodsurrogatepassexceptions(self):
|
||||||
|
@ -762,13 +767,15 @@ class CodecCallbackTest(unittest.TestCase):
|
||||||
with self.subTest(encoding=enc, str=s, bytes=b):
|
with self.subTest(encoding=enc, str=s, bytes=b):
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
surrogatepass_errors(
|
surrogatepass_errors(
|
||||||
UnicodeEncodeError(enc, s, 0, len(s), "ouch")),
|
UnicodeEncodeError(enc, "a" + s + "b",
|
||||||
(b, len(s))
|
1, 1 + len(s), "ouch")),
|
||||||
|
(b, 1 + len(s))
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
surrogatepass_errors(
|
surrogatepass_errors(
|
||||||
UnicodeDecodeError(enc, bytearray(b[:n]), 0, n, "ouch")),
|
UnicodeDecodeError(enc, bytearray(b"a" + b[:n] + b"b"),
|
||||||
(s[:1], n)
|
1, 1 + n, "ouch")),
|
||||||
|
(s[:1], 1 + n)
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_badhandlerresults(self):
|
def test_badhandlerresults(self):
|
||||||
|
|
Loading…
Reference in New Issue