aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_codecs.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_codecs.py')
-rw-r--r--Lib/test/test_codecs.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index 3aec34c7f16..8d9cb908903 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -1343,6 +1343,18 @@ class PunycodeTest(unittest.TestCase):
puny = puny.decode("ascii").encode("ascii")
self.assertEqual(uni, puny.decode("punycode"))
+ def test_decode_invalid(self):
+ testcases = [
+ (b"xn--w&", "strict", UnicodeError()),
+ (b"xn--w&", "ignore", "xn-"),
+ ]
+ for puny, errors, expected in testcases:
+ with self.subTest(puny=puny, errors=errors):
+ if isinstance(expected, Exception):
+ self.assertRaises(UnicodeError, puny.decode, "punycode", errors)
+ else:
+ self.assertEqual(puny.decode("punycode", errors), expected)
+
# From http://www.gnu.org/software/libidn/draft-josefsson-idn-test-vectors.html
nameprep_tests = [