blob: 8c866a9caaa7fcda05ed4fd7bc42521e3834d451 [file] [log] [blame]
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +00001#!/usr/bin/env python
2#
3# test_codecencodings_kr.py
4# Codec encoding tests for ROK encodings.
5#
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +00006
7from test import test_support
8from test import test_multibytecodec_support
9import unittest
10
11class Test_CP949(test_multibytecodec_support.TestBase, unittest.TestCase):
12 encoding = 'cp949'
13 tstring = test_multibytecodec_support.load_teststring('cp949')
14 codectests = (
15 # invalid bytes
16 ("abc\x80\x80\xc1\xc4", "strict", None),
17 ("abc\xc8", "strict", None),
18 ("abc\x80\x80\xc1\xc4", "replace", u"abc\ufffd\uc894"),
19 ("abc\x80\x80\xc1\xc4\xc8", "replace", u"abc\ufffd\uc894\ufffd"),
20 ("abc\x80\x80\xc1\xc4", "ignore", u"abc\uc894"),
21 )
22
23class Test_EUCKR(test_multibytecodec_support.TestBase, unittest.TestCase):
24 encoding = 'euc_kr'
25 tstring = test_multibytecodec_support.load_teststring('euc_kr')
26 codectests = (
27 # invalid bytes
28 ("abc\x80\x80\xc1\xc4", "strict", None),
29 ("abc\xc8", "strict", None),
30 ("abc\x80\x80\xc1\xc4", "replace", u"abc\ufffd\uc894"),
31 ("abc\x80\x80\xc1\xc4\xc8", "replace", u"abc\ufffd\uc894\ufffd"),
32 ("abc\x80\x80\xc1\xc4", "ignore", u"abc\uc894"),
Hye-Shik Chang23901042007-08-20 06:49:18 +000033
34 # composed make-up sequence errors
35 ("\xa4\xd4", "strict", None),
36 ("\xa4\xd4\xa4", "strict", None),
37 ("\xa4\xd4\xa4\xb6", "strict", None),
38 ("\xa4\xd4\xa4\xb6\xa4", "strict", None),
39 ("\xa4\xd4\xa4\xb6\xa4\xd0", "strict", None),
40 ("\xa4\xd4\xa4\xb6\xa4\xd0\xa4", "strict", None),
41 ("\xa4\xd4\xa4\xb6\xa4\xd0\xa4\xd4", "strict", u"\uc4d4"),
42 ("\xa4\xd4\xa4\xb6\xa4\xd0\xa4\xd4x", "strict", u"\uc4d4x"),
43 ("a\xa4\xd4\xa4\xb6\xa4", "replace", u"a\ufffd"),
44 ("\xa4\xd4\xa3\xb6\xa4\xd0\xa4\xd4", "strict", None),
45 ("\xa4\xd4\xa4\xb6\xa3\xd0\xa4\xd4", "strict", None),
46 ("\xa4\xd4\xa4\xb6\xa4\xd0\xa3\xd4", "strict", None),
47 ("\xa4\xd4\xa4\xff\xa4\xd0\xa4\xd4", "replace", u"\ufffd"),
48 ("\xa4\xd4\xa4\xb6\xa4\xff\xa4\xd4", "replace", u"\ufffd"),
49 ("\xa4\xd4\xa4\xb6\xa4\xd0\xa4\xff", "replace", u"\ufffd"),
50 ("\xc1\xc4", "strict", u"\uc894"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000051 )
52
53class Test_JOHAB(test_multibytecodec_support.TestBase, unittest.TestCase):
54 encoding = 'johab'
55 tstring = test_multibytecodec_support.load_teststring('johab')
56 codectests = (
57 # invalid bytes
58 ("abc\x80\x80\xc1\xc4", "strict", None),
59 ("abc\xc8", "strict", None),
60 ("abc\x80\x80\xc1\xc4", "replace", u"abc\ufffd\ucd27"),
61 ("abc\x80\x80\xc1\xc4\xc8", "replace", u"abc\ufffd\ucd27\ufffd"),
62 ("abc\x80\x80\xc1\xc4", "ignore", u"abc\ucd27"),
63 )
64
65def test_main():
Collin Winterc2898c52007-04-25 17:29:52 +000066 test_support.run_unittest(__name__)
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000067
68if __name__ == "__main__":
69 test_main()