blob: 4dd60499c87fa99c38c02c254acca2046fc6b0f3 [file] [log] [blame]
Benjamin Peterson90f5ba52010-03-11 22:53:45 +00001#!/usr/bin/env python3
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +00002#
3# test_codecencodings_kr.py
4# Codec encoding tests for ROK encodings.
5#
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +00006
Benjamin Petersonee8712c2008-05-20 21:35:26 +00007from test import support
R David Murray75d9aca2012-04-09 09:37:52 -04008from test import multibytecodec_support
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +00009import unittest
10
R David Murray75d9aca2012-04-09 09:37:52 -040011class Test_CP949(multibytecodec_support.TestBase, unittest.TestCase):
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000012 encoding = 'cp949'
R David Murray75d9aca2012-04-09 09:37:52 -040013 tstring = multibytecodec_support.load_teststring('cp949')
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000014 codectests = (
15 # invalid bytes
Guido van Rossum024da5c2007-05-17 23:59:11 +000016 (b"abc\x80\x80\xc1\xc4", "strict", None),
17 (b"abc\xc8", "strict", None),
Victor Stinner2cded9c2011-07-08 01:45:13 +020018 (b"abc\x80\x80\xc1\xc4", "replace", "abc\ufffd\ufffd\uc894"),
19 (b"abc\x80\x80\xc1\xc4\xc8", "replace", "abc\ufffd\ufffd\uc894\ufffd"),
Guido van Rossum024da5c2007-05-17 23:59:11 +000020 (b"abc\x80\x80\xc1\xc4", "ignore", "abc\uc894"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000021 )
22
R David Murray75d9aca2012-04-09 09:37:52 -040023class Test_EUCKR(multibytecodec_support.TestBase, unittest.TestCase):
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000024 encoding = 'euc_kr'
R David Murray75d9aca2012-04-09 09:37:52 -040025 tstring = multibytecodec_support.load_teststring('euc_kr')
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000026 codectests = (
27 # invalid bytes
Guido van Rossum024da5c2007-05-17 23:59:11 +000028 (b"abc\x80\x80\xc1\xc4", "strict", None),
29 (b"abc\xc8", "strict", None),
Victor Stinner2cded9c2011-07-08 01:45:13 +020030 (b"abc\x80\x80\xc1\xc4", "replace", 'abc\ufffd\ufffd\uc894'),
31 (b"abc\x80\x80\xc1\xc4\xc8", "replace", "abc\ufffd\ufffd\uc894\ufffd"),
Guido van Rossum024da5c2007-05-17 23:59:11 +000032 (b"abc\x80\x80\xc1\xc4", "ignore", "abc\uc894"),
Guido van Rossum61e21b52007-08-20 19:06:03 +000033
34 # composed make-up sequence errors
35 (b"\xa4\xd4", "strict", None),
36 (b"\xa4\xd4\xa4", "strict", None),
37 (b"\xa4\xd4\xa4\xb6", "strict", None),
38 (b"\xa4\xd4\xa4\xb6\xa4", "strict", None),
39 (b"\xa4\xd4\xa4\xb6\xa4\xd0", "strict", None),
40 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa4", "strict", None),
41 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa4\xd4", "strict", "\uc4d4"),
42 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa4\xd4x", "strict", "\uc4d4x"),
Victor Stinner2cded9c2011-07-08 01:45:13 +020043 (b"a\xa4\xd4\xa4\xb6\xa4", "replace", 'a\ufffd'),
Guido van Rossum61e21b52007-08-20 19:06:03 +000044 (b"\xa4\xd4\xa3\xb6\xa4\xd0\xa4\xd4", "strict", None),
45 (b"\xa4\xd4\xa4\xb6\xa3\xd0\xa4\xd4", "strict", None),
46 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa3\xd4", "strict", None),
Victor Stinner2cded9c2011-07-08 01:45:13 +020047 (b"\xa4\xd4\xa4\xff\xa4\xd0\xa4\xd4", "replace", '\ufffd\u6e21\ufffd\u3160\ufffd'),
48 (b"\xa4\xd4\xa4\xb6\xa4\xff\xa4\xd4", "replace", '\ufffd\u6e21\ub544\ufffd\ufffd'),
49 (b"\xa4\xd4\xa4\xb6\xa4\xd0\xa4\xff", "replace", '\ufffd\u6e21\ub544\u572d\ufffd'),
50 (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 +000051 (b"\xc1\xc4", "strict", "\uc894"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000052 )
53
R David Murray75d9aca2012-04-09 09:37:52 -040054class Test_JOHAB(multibytecodec_support.TestBase, unittest.TestCase):
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000055 encoding = 'johab'
R David Murray75d9aca2012-04-09 09:37:52 -040056 tstring = multibytecodec_support.load_teststring('johab')
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000057 codectests = (
58 # invalid bytes
Guido van Rossum024da5c2007-05-17 23:59:11 +000059 (b"abc\x80\x80\xc1\xc4", "strict", None),
60 (b"abc\xc8", "strict", None),
Victor Stinner2cded9c2011-07-08 01:45:13 +020061 (b"abc\x80\x80\xc1\xc4", "replace", "abc\ufffd\ufffd\ucd27"),
62 (b"abc\x80\x80\xc1\xc4\xc8", "replace", "abc\ufffd\ufffd\ucd27\ufffd"),
Guido van Rossum024da5c2007-05-17 23:59:11 +000063 (b"abc\x80\x80\xc1\xc4", "ignore", "abc\ucd27"),
Victor Stinner2cded9c2011-07-08 01:45:13 +020064 (b"\xD8abc", "replace", "\uFFFDabc"),
65 (b"\xD8\xFFabc", "replace", "\uFFFD\uFFFDabc"),
66 (b"\x84bxy", "replace", "\uFFFDbxy"),
67 (b"\x8CBxy", "replace", "\uFFFDBxy"),
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000068 )
69
70def test_main():
Benjamin Petersonee8712c2008-05-20 21:35:26 +000071 support.run_unittest(__name__)
Hye-Shik Chang3e2a3062004-01-17 14:29:29 +000072
73if __name__ == "__main__":
74 test_main()