blob: e2cd7d70208854f3fed7ce29370d527e4036ccc7 [file] [log] [blame]
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +00001#!/usr/bin/env python
2#
3# test_codecencodings_jp.py
4# Codec encoding tests for Japanese encodings.
5#
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +00006
Benjamin Petersonee8712c2008-05-20 21:35:26 +00007from test import support
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +00008from test import test_multibytecodec_support
9import unittest
10
11class Test_CP932(test_multibytecodec_support.TestBase, unittest.TestCase):
12 encoding = 'cp932'
13 tstring = test_multibytecodec_support.load_teststring('shift_jis')
14 codectests = (
15 # invalid bytes
Guido van Rossum024da5c2007-05-17 23:59:11 +000016 (b"abc\x81\x00\x81\x00\x82\x84", "strict", None),
17 (b"abc\xf8", "strict", None),
18 (b"abc\x81\x00\x82\x84", "replace", "abc\ufffd\uff44"),
19 (b"abc\x81\x00\x82\x84\x88", "replace", "abc\ufffd\uff44\ufffd"),
20 (b"abc\x81\x00\x82\x84", "ignore", "abc\uff44"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000021 # sjis vs cp932
Guido van Rossum024da5c2007-05-17 23:59:11 +000022 (b"\\\x7e", "replace", "\\\x7e"),
23 (b"\x81\x5f\x81\x61\x81\x7c", "replace", "\uff3c\u2225\uff0d"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000024 )
25
26class Test_EUC_JISX0213(test_multibytecodec_support.TestBase,
27 unittest.TestCase):
28 encoding = 'euc_jisx0213'
29 tstring = test_multibytecodec_support.load_teststring('euc_jisx0213')
30 codectests = (
31 # invalid bytes
Guido van Rossum024da5c2007-05-17 23:59:11 +000032 (b"abc\x80\x80\xc1\xc4", "strict", None),
33 (b"abc\xc8", "strict", None),
34 (b"abc\x80\x80\xc1\xc4", "replace", "abc\ufffd\u7956"),
35 (b"abc\x80\x80\xc1\xc4\xc8", "replace", "abc\ufffd\u7956\ufffd"),
36 (b"abc\x80\x80\xc1\xc4", "ignore", "abc\u7956"),
37 (b"abc\x8f\x83\x83", "replace", "abc\ufffd"),
38 (b"\xc1\x64", "strict", None),
39 (b"\xa1\xc0", "strict", "\uff3c"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000040 )
41 xmlcharnametest = (
Guido van Rossumef87d6e2007-05-02 19:09:54 +000042 "\xab\u211c\xbb = \u2329\u1234\u232a",
Guido van Rossum024da5c2007-05-17 23:59:11 +000043 b"\xa9\xa8ℜ\xa9\xb2 = ⟨ሴ⟩"
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000044 )
45
46eucjp_commontests = (
Guido van Rossum024da5c2007-05-17 23:59:11 +000047 (b"abc\x80\x80\xc1\xc4", "strict", None),
48 (b"abc\xc8", "strict", None),
49 (b"abc\x80\x80\xc1\xc4", "replace", "abc\ufffd\u7956"),
50 (b"abc\x80\x80\xc1\xc4\xc8", "replace", "abc\ufffd\u7956\ufffd"),
51 (b"abc\x80\x80\xc1\xc4", "ignore", "abc\u7956"),
52 (b"abc\x8f\x83\x83", "replace", "abc\ufffd"),
53 (b"\xc1\x64", "strict", None),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000054)
55
56class Test_EUC_JP_COMPAT(test_multibytecodec_support.TestBase,
57 unittest.TestCase):
58 encoding = 'euc_jp'
59 tstring = test_multibytecodec_support.load_teststring('euc_jp')
60 codectests = eucjp_commontests + (
Guido van Rossum024da5c2007-05-17 23:59:11 +000061 (b"\xa1\xc0\\", "strict", "\uff3c\\"),
62 ("\xa5", "strict", b"\x5c"),
63 ("\u203e", "strict", b"\x7e"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000064 )
65
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000066shiftjis_commonenctests = (
Guido van Rossum024da5c2007-05-17 23:59:11 +000067 (b"abc\x80\x80\x82\x84", "strict", None),
68 (b"abc\xf8", "strict", None),
69 (b"abc\x80\x80\x82\x84", "replace", "abc\ufffd\uff44"),
70 (b"abc\x80\x80\x82\x84\x88", "replace", "abc\ufffd\uff44\ufffd"),
71 (b"abc\x80\x80\x82\x84def", "ignore", "abc\uff44def"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000072)
73
74class Test_SJIS_COMPAT(test_multibytecodec_support.TestBase, unittest.TestCase):
75 encoding = 'shift_jis'
76 tstring = test_multibytecodec_support.load_teststring('shift_jis')
77 codectests = shiftjis_commonenctests + (
Guido van Rossum024da5c2007-05-17 23:59:11 +000078 (b"\\\x7e", "strict", "\\\x7e"),
79 (b"\x81\x5f\x81\x61\x81\x7c", "strict", "\uff3c\u2016\u2212"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000080 )
81
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000082class Test_SJISX0213(test_multibytecodec_support.TestBase, unittest.TestCase):
83 encoding = 'shift_jisx0213'
84 tstring = test_multibytecodec_support.load_teststring('shift_jisx0213')
85 codectests = (
86 # invalid bytes
Guido van Rossum024da5c2007-05-17 23:59:11 +000087 (b"abc\x80\x80\x82\x84", "strict", None),
88 (b"abc\xf8", "strict", None),
89 (b"abc\x80\x80\x82\x84", "replace", "abc\ufffd\uff44"),
90 (b"abc\x80\x80\x82\x84\x88", "replace", "abc\ufffd\uff44\ufffd"),
91 (b"abc\x80\x80\x82\x84def", "ignore", "abc\uff44def"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000092 # sjis vs cp932
Guido van Rossum024da5c2007-05-17 23:59:11 +000093 (b"\\\x7e", "replace", "\xa5\u203e"),
94 (b"\x81\x5f\x81\x61\x81\x7c", "replace", "\x5c\u2016\u2212"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000095 )
96 xmlcharnametest = (
Guido van Rossumef87d6e2007-05-02 19:09:54 +000097 "\xab\u211c\xbb = \u2329\u1234\u232a",
Guido van Rossum024da5c2007-05-17 23:59:11 +000098 b"\x85Gℜ\x85Q = ⟨ሴ⟩"
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000099 )
100
101def test_main():
Benjamin Petersonee8712c2008-05-20 21:35:26 +0000102 support.run_unittest(__name__)
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +0000103
104if __name__ == "__main__":
105 test_main()