summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_codecs.py
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2009-01-22 10:11:36 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2009-01-22 10:11:36 (GMT)
commit81fabdb437eea29e2616de58e6952b7ef2e5542f (patch)
tree04f58fb00eea5a33fcb101e1892c14ef13c1c9af /Lib/test/test_codecs.py
parentdd01f8f37b98af090098495200107dfaf92a3162 (diff)
downloadcpython-81fabdb437eea29e2616de58e6952b7ef2e5542f.zip
cpython-81fabdb437eea29e2616de58e6952b7ef2e5542f.tar.gz
cpython-81fabdb437eea29e2616de58e6952b7ef2e5542f.tar.bz2
Issue #4874: Most builtin decoders now reject unicode input.
Diffstat (limited to 'Lib/test/test_codecs.py')
-rw-r--r--Lib/test/test_codecs.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index e485fdd..1730dbe 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -1475,6 +1475,36 @@ class WithStmtTest(unittest.TestCase):
info.streamwriter, 'strict') as srw:
self.assertEquals(srw.read(), "\xfc")
+class TypesTest(unittest.TestCase):
+ def test_decode_unicode(self):
+ # Most decoders don't accept unicode input
+ decoders = [
+ codecs.utf_7_decode,
+ codecs.utf_8_decode,
+ codecs.utf_16_le_decode,
+ codecs.utf_16_be_decode,
+ codecs.utf_16_ex_decode,
+ codecs.utf_32_decode,
+ codecs.utf_32_le_decode,
+ codecs.utf_32_be_decode,
+ codecs.utf_32_ex_decode,
+ codecs.latin_1_decode,
+ codecs.ascii_decode,
+ codecs.charmap_decode,
+ ]
+ if hasattr(codecs, "mbcs_decode"):
+ decoders.append(codecs.mbcs_decode)
+ for decoder in decoders:
+ self.assertRaises(TypeError, decoder, "xxx")
+
+ def test_unicode_escape(self):
+ # Escape-decoding an unicode string is supported ang gives the same
+ # result as decoding the equivalent ASCII bytes string.
+ self.assertEquals(codecs.unicode_escape_decode(r"\u1234"), ("\u1234", 6))
+ self.assertEquals(codecs.unicode_escape_decode(br"\u1234"), ("\u1234", 6))
+ self.assertEquals(codecs.raw_unicode_escape_decode(r"\u1234"), ("\u1234", 6))
+ self.assertEquals(codecs.raw_unicode_escape_decode(br"\u1234"), ("\u1234", 6))
+
def test_main():
support.run_unittest(
@@ -1501,6 +1531,7 @@ def test_main():
BasicUnicodeTest,
CharmapTest,
WithStmtTest,
+ TypesTest,
)