blob: 863d16b8fd609d1f30ca66ec8ae2b19f07cad29e [file] [log] [blame]
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +00001#
2# test_codecencodings_kr.py
3# Codec encoding tests for ROK encodings.
4#
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +00005
R David Murray75d9aca2012-04-09 09:37:52 -04006from test import multibytecodec_support
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +00007import unittest
8
R David Murray75d9aca2012-04-09 09:37:52 -04009class Test_CP949(multibytecodec_support.TestBase, unittest.TestCase):
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000010 encoding = 'cp949'
R David Murray75d9aca2012-04-09 09:37:52 -040011 tstring = multibytecodec_support.load_teststring('cp949')
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000012 codectests = (
13 # invalid bytes
Guido van Rossum024da5c2007-05-17 23:59:11 +000014 (b"abc\x80\x80\xc1\xc4", "strict", None),
15 (b"abc\xc8", "strict", None),
Victor Stinner2cded9c2011-07-08 01:45:13 +020016 (b"abc\x80\x80\xc1\xc4", "replace", "abc\ufffd\ufffd\uc894"),
17 (b"abc\x80\x80\xc1\xc4\xc8", "replace", "abc\ufffd\ufffd\uc894\ufffd"),
Guido van Rossum024da5c2007-05-17 23:59:11 +000018 (b"abc\x80\x80\xc1\xc4", "ignore", "abc\uc894"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000019 )
20
R David Murray75d9aca2012-04-09 09:37:52 -040021class Test_EUCKR(multibytecodec_support.TestBase, unittest.TestCase):
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000022 encoding = 'euc_kr'
R David Murray75d9aca2012-04-09 09:37:52 -040023 tstring = multibytecodec_support.load_teststring('euc_kr')
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000024 codectests = (
25 # invalid bytes
Guido van Rossum024da5c2007-05-17 23:59:11 +000026 (b"abc\x80\x80\xc1\xc4", "strict", None),
27 (b"abc\xc8", "strict", None),
Victor Stinner2cded9c2011-07-08 01:45:13 +020028 (b"abc\x80\x80\xc1\xc4", "replace", 'abc\ufffd\ufffd\uc894'),
29 (b"abc\x80\x80\xc1\xc4\xc8", "replace", "abc\ufffd\ufffd\uc894\ufffd"),
Guido van Rossum024da5c2007-05-17 23:59:11 +000030 (b"abc\x80\x80\xc1\xc4", "ignore", "abc\uc894"),
Guido van Rossum61e21b52007-08-20 19:06:03 +000031
32 # composed make-up sequence errors
33 (b"\xa4\xd4", "strict", None),
34 (b"\xa4\xd4\xa4", "strict", None),
35 (b"\xa4\xd4\xa4\xb6", "strict", None),
36 (b"\xa4\xd4\xa4\xb6\xa4", "strict", None),
37 (b"\xa4\xd4\xa4\xb6\xa4\xd0", "strict", None),
38 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa4", "strict", None),
39 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa4\xd4", "strict", "\uc4d4"),
40 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa4\xd4x", "strict", "\uc4d4x"),
Victor Stinner2cded9c2011-07-08 01:45:13 +020041 (b"a\xa4\xd4\xa4\xb6\xa4", "replace", 'a\ufffd'),
Guido van Rossum61e21b52007-08-20 19:06:03 +000042 (b"\xa4\xd4\xa3\xb6\xa4\xd0\xa4\xd4", "strict", None),
43 (b"\xa4\xd4\xa4\xb6\xa3\xd0\xa4\xd4", "strict", None),
44 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa3\xd4", "strict", None),
Victor Stinner2cded9c2011-07-08 01:45:13 +020045 (b"\xa4\xd4\xa4\xff\xa4\xd0\xa4\xd4", "replace", '\ufffd\u6e21\ufffd\u3160\ufffd'),
46 (b"\xa4\xd4\xa4\xb6\xa4\xff\xa4\xd4", "replace", '\ufffd\u6e21\ub544\ufffd\ufffd'),
47 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa4\xff", "replace", '\ufffd\u6e21\ub544\u572d\ufffd'),
48 (b"\xa4\xd4\xff\xa4\xd4\xa4\xb6\xa4\xd0\xa4\xd4", "replace", '\ufffd\ufffd\ufffd\uc4d4'),
Guido van Rossum61e21b52007-08-20 19:06:03 +000049 (b"\xc1\xc4", "strict", "\uc894"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000050 )
51
R David Murray75d9aca2012-04-09 09:37:52 -040052class Test_JOHAB(multibytecodec_support.TestBase, unittest.TestCase):
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000053 encoding = 'johab'
R David Murray75d9aca2012-04-09 09:37:52 -040054 tstring = multibytecodec_support.load_teststring('johab')
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000055 codectests = (
56 # invalid bytes
Guido van Rossum024da5c2007-05-17 23:59:11 +000057 (b"abc\x80\x80\xc1\xc4", "strict", None),
58 (b"abc\xc8", "strict", None),
Victor Stinner2cded9c2011-07-08 01:45:13 +020059 (b"abc\x80\x80\xc1\xc4", "replace", "abc\ufffd\ufffd\ucd27"),
60 (b"abc\x80\x80\xc1\xc4\xc8", "replace", "abc\ufffd\ufffd\ucd27\ufffd"),
Guido van Rossum024da5c2007-05-17 23:59:11 +000061 (b"abc\x80\x80\xc1\xc4", "ignore", "abc\ucd27"),
Victor Stinner2cded9c2011-07-08 01:45:13 +020062 (b"\xD8abc", "replace", "\uFFFDabc"),
63 (b"\xD8\xFFabc", "replace", "\uFFFD\uFFFDabc"),
64 (b"\x84bxy", "replace", "\uFFFDbxy"),
65 (b"\x8CBxy", "replace", "\uFFFDBxy"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000066 )
67
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000068if __name__ == "__main__":
Zachary Ware38c707e2015-04-13 15:00:43 -050069 unittest.main()