blob: b6a74fbd5bfd0bcfdc33184cb01aba454048f33d [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
Benjamin Petersonee8712c2008-05-20 21:35:26 +00006from test import support
R David Murray75d9aca2012-04-09 09:37:52 -04007from test import multibytecodec_support
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +00008import unittest
9
R David Murray75d9aca2012-04-09 09:37:52 -040010class Test_CP949(multibytecodec_support.TestBase, unittest.TestCase):
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000011 encoding = 'cp949'
R David Murray75d9aca2012-04-09 09:37:52 -040012 tstring = multibytecodec_support.load_teststring('cp949')
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000013 codectests = (
14 # invalid bytes
Guido van Rossum024da5c2007-05-17 23:59:11 +000015 (b"abc\x80\x80\xc1\xc4", "strict", None),
16 (b"abc\xc8", "strict", None),
Victor Stinner2cded9c2011-07-08 01:45:13 +020017 (b"abc\x80\x80\xc1\xc4", "replace", "abc\ufffd\ufffd\uc894"),
18 (b"abc\x80\x80\xc1\xc4\xc8", "replace", "abc\ufffd\ufffd\uc894\ufffd"),
Guido van Rossum024da5c2007-05-17 23:59:11 +000019 (b"abc\x80\x80\xc1\xc4", "ignore", "abc\uc894"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000020 )
21
R David Murray75d9aca2012-04-09 09:37:52 -040022class Test_EUCKR(multibytecodec_support.TestBase, unittest.TestCase):
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000023 encoding = 'euc_kr'
R David Murray75d9aca2012-04-09 09:37:52 -040024 tstring = multibytecodec_support.load_teststring('euc_kr')
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000025 codectests = (
26 # invalid bytes
Guido van Rossum024da5c2007-05-17 23:59:11 +000027 (b"abc\x80\x80\xc1\xc4", "strict", None),
28 (b"abc\xc8", "strict", None),
Victor Stinner2cded9c2011-07-08 01:45:13 +020029 (b"abc\x80\x80\xc1\xc4", "replace", 'abc\ufffd\ufffd\uc894'),
30 (b"abc\x80\x80\xc1\xc4\xc8", "replace", "abc\ufffd\ufffd\uc894\ufffd"),
Guido van Rossum024da5c2007-05-17 23:59:11 +000031 (b"abc\x80\x80\xc1\xc4", "ignore", "abc\uc894"),
Guido van Rossum61e21b52007-08-20 19:06:03 +000032
33 # composed make-up sequence errors
34 (b"\xa4\xd4", "strict", None),
35 (b"\xa4\xd4\xa4", "strict", None),
36 (b"\xa4\xd4\xa4\xb6", "strict", None),
37 (b"\xa4\xd4\xa4\xb6\xa4", "strict", None),
38 (b"\xa4\xd4\xa4\xb6\xa4\xd0", "strict", None),
39 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa4", "strict", None),
40 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa4\xd4", "strict", "\uc4d4"),
41 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa4\xd4x", "strict", "\uc4d4x"),
Victor Stinner2cded9c2011-07-08 01:45:13 +020042 (b"a\xa4\xd4\xa4\xb6\xa4", "replace", 'a\ufffd'),
Guido van Rossum61e21b52007-08-20 19:06:03 +000043 (b"\xa4\xd4\xa3\xb6\xa4\xd0\xa4\xd4", "strict", None),
44 (b"\xa4\xd4\xa4\xb6\xa3\xd0\xa4\xd4", "strict", None),
45 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa3\xd4", "strict", None),
Victor Stinner2cded9c2011-07-08 01:45:13 +020046 (b"\xa4\xd4\xa4\xff\xa4\xd0\xa4\xd4", "replace", '\ufffd\u6e21\ufffd\u3160\ufffd'),
47 (b"\xa4\xd4\xa4\xb6\xa4\xff\xa4\xd4", "replace", '\ufffd\u6e21\ub544\ufffd\ufffd'),
48 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa4\xff", "replace", '\ufffd\u6e21\ub544\u572d\ufffd'),
49 (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 +000050 (b"\xc1\xc4", "strict", "\uc894"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000051 )
52
R David Murray75d9aca2012-04-09 09:37:52 -040053class Test_JOHAB(multibytecodec_support.TestBase, unittest.TestCase):
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000054 encoding = 'johab'
R David Murray75d9aca2012-04-09 09:37:52 -040055 tstring = multibytecodec_support.load_teststring('johab')
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000056 codectests = (
57 # invalid bytes
Guido van Rossum024da5c2007-05-17 23:59:11 +000058 (b"abc\x80\x80\xc1\xc4", "strict", None),
59 (b"abc\xc8", "strict", None),
Victor Stinner2cded9c2011-07-08 01:45:13 +020060 (b"abc\x80\x80\xc1\xc4", "replace", "abc\ufffd\ufffd\ucd27"),
61 (b"abc\x80\x80\xc1\xc4\xc8", "replace", "abc\ufffd\ufffd\ucd27\ufffd"),
Guido van Rossum024da5c2007-05-17 23:59:11 +000062 (b"abc\x80\x80\xc1\xc4", "ignore", "abc\ucd27"),
Victor Stinner2cded9c2011-07-08 01:45:13 +020063 (b"\xD8abc", "replace", "\uFFFDabc"),
64 (b"\xD8\xFFabc", "replace", "\uFFFD\uFFFDabc"),
65 (b"\x84bxy", "replace", "\uFFFDbxy"),
66 (b"\x8CBxy", "replace", "\uFFFDBxy"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000067 )
68
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000069if __name__ == "__main__":
Zachary Ware38c707e2015-04-13 15:00:43 -050070 unittest.main()