summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_codecmaps_jp.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_codecmaps_jp.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_codecmaps_jp.py')
-rw-r--r--Lib/test/test_codecmaps_jp.py90
1 files changed, 90 insertions, 0 deletions
diff --git a/Lib/test/test_codecmaps_jp.py b/Lib/test/test_codecmaps_jp.py
new file mode 100644
index 0000000..ef49178
--- /dev/null
+++ b/Lib/test/test_codecmaps_jp.py
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+#
+# test_codecmaps_jp.py
+# Codec mapping tests for Japanese encodings
+#
+# $CJKCodecs: test_codecmaps_jp.py,v 1.2 2004/01/17 12:47:19 perky Exp $
+
+from test import test_support
+from test import test_multibytecodec_support
+import unittest
+
+class TestCP932Map(test_multibytecodec_support.TestBase_Mapping,
+ unittest.TestCase):
+ encoding = 'cp932'
+ mapfilename = 'CP932.TXT'
+ mapfileurl = 'http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/' \
+ 'WINDOWS/CP932.TXT'
+ supmaps = [
+ ('\x80', u'\u0080'),
+ ('\xa0', u'\uf8f0'),
+ ('\xfd', u'\uf8f1'),
+ ('\xfe', u'\uf8f2'),
+ ('\xff', u'\uf8f3'),
+ ]
+ for i in range(0xa1, 0xe0):
+ supmaps.append((chr(i), unichr(i+0xfec0)))
+
+
+class TestEUCJPCOMPATMap(test_multibytecodec_support.TestBase_Mapping,
+ unittest.TestCase):
+ encoding = 'euc_jp'
+ mapfilename = 'EUC-JP.TXT'
+ mapfileurl = 'http://people.freebsd.org/~perky/i18n/EUC-JP.TXT'
+
+
+class TestSJISCOMPATMap(test_multibytecodec_support.TestBase_Mapping,
+ unittest.TestCase):
+ encoding = 'shift_jis'
+ mapfilename = 'SHIFTJIS.TXT'
+ mapfileurl = 'http://www.unicode.org/Public/MAPPINGS/OBSOLETE' \
+ '/EASTASIA/JIS/SHIFTJIS.TXT'
+ pass_enctest = [
+ ('\x81_', u'\\'),
+ ]
+ pass_dectest = [
+ ('\\', u'\xa5'),
+ ('~', u'\u203e'),
+ ('\x81_', u'\\'),
+ ]
+
+
+class TestSJISSTRICTMap(test_multibytecodec_support.TestBase_Mapping,
+ unittest.TestCase):
+ encoding = 'shift_jis_strict'
+ mapfilename = 'SHIFTJIS.TXT'
+ mapfileurl = 'http://www.unicode.org/Public/MAPPINGS/OBSOLETE' \
+ '/EASTASIA/JIS/SHIFTJIS.TXT'
+
+
+class TestEUCJISX0213Map(test_multibytecodec_support.TestBase_Mapping,
+ unittest.TestCase):
+ encoding = 'euc_jisx0213'
+ mapfilename = 'EUC-JISX0213.TXT'
+ mapfileurl = 'http://people.freebsd.org/~perky/i18n/EUC-JISX0213.TXT'
+
+
+class TestSJISX0213Map(test_multibytecodec_support.TestBase_Mapping,
+ unittest.TestCase):
+ encoding = 'shift_jisx0213'
+ mapfilename = 'SHIFT_JISX0213.TXT'
+ mapfileurl = 'http://people.freebsd.org/~perky/i18n/SHIFT_JISX0213.TXT'
+
+
+def test_main():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestCP932Map))
+ suite.addTest(unittest.makeSuite(TestEUCJPCOMPATMap))
+ suite.addTest(unittest.makeSuite(TestSJISCOMPATMap))
+ if test_multibytecodec_support.__cjkcodecs__:
+ suite.addTest(unittest.makeSuite(TestSJISSTRICTMap))
+ suite.addTest(unittest.makeSuite(TestEUCJISX0213Map))
+ suite.addTest(unittest.makeSuite(TestSJISX0213Map))
+ test_support.run_suite(suite)
+
+test_multibytecodec_support.register_skip_expected(TestCP932Map,
+ TestEUCJPCOMPATMap, TestSJISCOMPATMap, TestEUCJISX0213Map,
+ TestSJISX0213Map)
+if __name__ == "__main__":
+ test_main()
+