source: python/trunk/Lib/test/test_codecencodings_jp.py

Last change on this file was 2, checked in by Yuri Dario, 15 years ago

Initial import for vendor code.

  • Property svn:eol-style set to native
File size: 3.8 KB
Line 
1#!/usr/bin/env python
2#
3# test_codecencodings_jp.py
4# Codec encoding tests for Japanese encodings.
5#
6
7from test import test_support
8from 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
16 ("abc\x81\x00\x81\x00\x82\x84", "strict", None),
17 ("abc\xf8", "strict", None),
18 ("abc\x81\x00\x82\x84", "replace", u"abc\ufffd\uff44"),
19 ("abc\x81\x00\x82\x84\x88", "replace", u"abc\ufffd\uff44\ufffd"),
20 ("abc\x81\x00\x82\x84", "ignore", u"abc\uff44"),
21 # sjis vs cp932
22 ("\\\x7e", "replace", u"\\\x7e"),
23 ("\x81\x5f\x81\x61\x81\x7c", "replace", u"\uff3c\u2225\uff0d"),
24 )
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
32 ("abc\x80\x80\xc1\xc4", "strict", None),
33 ("abc\xc8", "strict", None),
34 ("abc\x80\x80\xc1\xc4", "replace", u"abc\ufffd\u7956"),
35 ("abc\x80\x80\xc1\xc4\xc8", "replace", u"abc\ufffd\u7956\ufffd"),
36 ("abc\x80\x80\xc1\xc4", "ignore", u"abc\u7956"),
37 ("abc\x8f\x83\x83", "replace", u"abc\ufffd"),
38 ("\xc1\x64", "strict", None),
39 ("\xa1\xc0", "strict", u"\uff3c"),
40 )
41 xmlcharnametest = (
42 u"\xab\u211c\xbb = \u2329\u1234\u232a",
43 "\xa9\xa8ℜ\xa9\xb2 = ⟨ሴ⟩"
44 )
45
46eucjp_commontests = (
47 ("abc\x80\x80\xc1\xc4", "strict", None),
48 ("abc\xc8", "strict", None),
49 ("abc\x80\x80\xc1\xc4", "replace", u"abc\ufffd\u7956"),
50 ("abc\x80\x80\xc1\xc4\xc8", "replace", u"abc\ufffd\u7956\ufffd"),
51 ("abc\x80\x80\xc1\xc4", "ignore", u"abc\u7956"),
52 ("abc\x8f\x83\x83", "replace", u"abc\ufffd"),
53 ("\xc1\x64", "strict", None),
54)
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 + (
61 ("\xa1\xc0\\", "strict", u"\uff3c\\"),
62 (u"\xa5", "strict", "\x5c"),
63 (u"\u203e", "strict", "\x7e"),
64 )
65
66shiftjis_commonenctests = (
67 ("abc\x80\x80\x82\x84", "strict", None),
68 ("abc\xf8", "strict", None),
69 ("abc\x80\x80\x82\x84", "replace", u"abc\ufffd\uff44"),
70 ("abc\x80\x80\x82\x84\x88", "replace", u"abc\ufffd\uff44\ufffd"),
71 ("abc\x80\x80\x82\x84def", "ignore", u"abc\uff44def"),
72)
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 + (
78 ("\\\x7e", "strict", u"\\\x7e"),
79 ("\x81\x5f\x81\x61\x81\x7c", "strict", u"\uff3c\u2016\u2212"),
80 )
81
82class 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
87 ("abc\x80\x80\x82\x84", "strict", None),
88 ("abc\xf8", "strict", None),
89 ("abc\x80\x80\x82\x84", "replace", u"abc\ufffd\uff44"),
90 ("abc\x80\x80\x82\x84\x88", "replace", u"abc\ufffd\uff44\ufffd"),
91 ("abc\x80\x80\x82\x84def", "ignore", u"abc\uff44def"),
92 # sjis vs cp932
93 ("\\\x7e", "replace", u"\xa5\u203e"),
94 ("\x81\x5f\x81\x61\x81\x7c", "replace", u"\x5c\u2016\u2212"),
95 )
96 xmlcharnametest = (
97 u"\xab\u211c\xbb = \u2329\u1234\u232a",
98 "\x85Gℜ\x85Q = ⟨ሴ⟩"
99 )
100
101def test_main():
102 test_support.run_unittest(__name__)
103
104if __name__ == "__main__":
105 test_main()
Note: See TracBrowser for help on using the repository browser.