summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_codecencodings_cn.py
diff options
context:
space:
mode:
authorHye-Shik Chang <hyeshik@gmail.com>2004-01-17 14:29:29 (GMT)
committerHye-Shik Chang <hyeshik@gmail.com>2004-01-17 14:29:29 (GMT)
commit3e2a30692085d32ac63f72b35da39158a471fc68 (patch)
tree4cbe735f61eae87ac56a13ca6bd32113b98bd03d /Lib/test/test_codecencodings_cn.py
parentcd1f7430cb8f48de970021071d7683054c23b10f (diff)
downloadcpython-3e2a30692085d32ac63f72b35da39158a471fc68.zip
cpython-3e2a30692085d32ac63f72b35da39158a471fc68.tar.gz
cpython-3e2a30692085d32ac63f72b35da39158a471fc68.tar.bz2
Add CJK codecs support as discussed on python-dev. (SF #873597)
Several style fixes are suggested by Martin v. Loewis and Marc-Andre Lemburg. Thanks!
Diffstat (limited to 'Lib/test/test_codecencodings_cn.py')
-rw-r--r--Lib/test/test_codecencodings_cn.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/Lib/test/test_codecencodings_cn.py b/Lib/test/test_codecencodings_cn.py
new file mode 100644
index 0000000..3960c9c
--- /dev/null
+++ b/Lib/test/test_codecencodings_cn.py
@@ -0,0 +1,61 @@
+#!/usr/bin/env python
+#
+# test_codecencodings_cn.py
+# Codec encoding tests for PRC encodings.
+#
+# $CJKCodecs: test_codecencodings_cn.py,v 1.1 2003/12/19 03:00:05 perky Exp $
+
+from test import test_support
+from test import test_multibytecodec_support
+import unittest
+
+class Test_GB2312(test_multibytecodec_support.TestBase, unittest.TestCase):
+ encoding = 'gb2312'
+ tstring = test_multibytecodec_support.load_teststring('gb2312')
+ codectests = (
+ # invalid bytes
+ ("abc\x81\x81\xc1\xc4", "strict", None),
+ ("abc\xc8", "strict", None),
+ ("abc\x81\x81\xc1\xc4", "replace", u"abc\ufffd\u804a"),
+ ("abc\x81\x81\xc1\xc4\xc8", "replace", u"abc\ufffd\u804a\ufffd"),
+ ("abc\x81\x81\xc1\xc4", "ignore", u"abc\u804a"),
+ ("\xc1\x64", "strict", None),
+ )
+
+class Test_GBK(test_multibytecodec_support.TestBase, unittest.TestCase):
+ encoding = 'gbk'
+ tstring = test_multibytecodec_support.load_teststring('gbk')
+ codectests = (
+ # invalid bytes
+ ("abc\x80\x80\xc1\xc4", "strict", None),
+ ("abc\xc8", "strict", None),
+ ("abc\x80\x80\xc1\xc4", "replace", u"abc\ufffd\u804a"),
+ ("abc\x80\x80\xc1\xc4\xc8", "replace", u"abc\ufffd\u804a\ufffd"),
+ ("abc\x80\x80\xc1\xc4", "ignore", u"abc\u804a"),
+ ("\x83\x34\x83\x31", "strict", None),
+ )
+
+class Test_GB18030(test_multibytecodec_support.TestBase, unittest.TestCase):
+ encoding = 'gb18030'
+ tstring = test_multibytecodec_support.load_teststring('gb18030')
+ codectests = (
+ # invalid bytes
+ ("abc\x80\x80\xc1\xc4", "strict", None),
+ ("abc\xc8", "strict", None),
+ ("abc\x80\x80\xc1\xc4", "replace", u"abc\ufffd\u804a"),
+ ("abc\x80\x80\xc1\xc4\xc8", "replace", u"abc\ufffd\u804a\ufffd"),
+ ("abc\x80\x80\xc1\xc4", "ignore", u"abc\u804a"),
+ ("abc\x84\x39\x84\x39\xc1\xc4", "replace", u"abc\ufffd\u804a"),
+ )
+ has_iso10646 = True
+
+def test_main():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(Test_GB2312))
+ suite.addTest(unittest.makeSuite(Test_GBK))
+ suite.addTest(unittest.makeSuite(Test_GB18030))
+ test_support.run_suite(suite)
+
+if __name__ == "__main__":
+ test_main()
+