17db96d56Sopenharmony_ci# 27db96d56Sopenharmony_ci# test_codecencodings_jp.py 37db96d56Sopenharmony_ci# Codec encoding tests for Japanese encodings. 47db96d56Sopenharmony_ci# 57db96d56Sopenharmony_ci 67db96d56Sopenharmony_cifrom test import multibytecodec_support 77db96d56Sopenharmony_ciimport unittest 87db96d56Sopenharmony_ci 97db96d56Sopenharmony_ciclass Test_CP932(multibytecodec_support.TestBase, unittest.TestCase): 107db96d56Sopenharmony_ci encoding = 'cp932' 117db96d56Sopenharmony_ci tstring = multibytecodec_support.load_teststring('shift_jis') 127db96d56Sopenharmony_ci codectests = ( 137db96d56Sopenharmony_ci # invalid bytes 147db96d56Sopenharmony_ci (b"abc\x81\x00\x81\x00\x82\x84", "strict", None), 157db96d56Sopenharmony_ci (b"abc\xf8", "strict", None), 167db96d56Sopenharmony_ci (b"abc\x81\x00\x82\x84", "replace", "abc\ufffd\x00\uff44"), 177db96d56Sopenharmony_ci (b"abc\x81\x00\x82\x84\x88", "replace", "abc\ufffd\x00\uff44\ufffd"), 187db96d56Sopenharmony_ci (b"abc\x81\x00\x82\x84", "ignore", "abc\x00\uff44"), 197db96d56Sopenharmony_ci (b"ab\xEBxy", "replace", "ab\uFFFDxy"), 207db96d56Sopenharmony_ci (b"ab\xF0\x39xy", "replace", "ab\uFFFD9xy"), 217db96d56Sopenharmony_ci (b"ab\xEA\xF0xy", "replace", 'ab\ufffd\ue038y'), 227db96d56Sopenharmony_ci # sjis vs cp932 237db96d56Sopenharmony_ci (b"\\\x7e", "replace", "\\\x7e"), 247db96d56Sopenharmony_ci (b"\x81\x5f\x81\x61\x81\x7c", "replace", "\uff3c\u2225\uff0d"), 257db96d56Sopenharmony_ci ) 267db96d56Sopenharmony_ci 277db96d56Sopenharmony_cieuc_commontests = ( 287db96d56Sopenharmony_ci # invalid bytes 297db96d56Sopenharmony_ci (b"abc\x80\x80\xc1\xc4", "strict", None), 307db96d56Sopenharmony_ci (b"abc\x80\x80\xc1\xc4", "replace", "abc\ufffd\ufffd\u7956"), 317db96d56Sopenharmony_ci (b"abc\x80\x80\xc1\xc4\xc8", "replace", "abc\ufffd\ufffd\u7956\ufffd"), 327db96d56Sopenharmony_ci (b"abc\x80\x80\xc1\xc4", "ignore", "abc\u7956"), 337db96d56Sopenharmony_ci (b"abc\xc8", "strict", None), 347db96d56Sopenharmony_ci (b"abc\x8f\x83\x83", "replace", "abc\ufffd\ufffd\ufffd"), 357db96d56Sopenharmony_ci (b"\x82\xFCxy", "replace", "\ufffd\ufffdxy"), 367db96d56Sopenharmony_ci (b"\xc1\x64", "strict", None), 377db96d56Sopenharmony_ci (b"\xa1\xc0", "strict", "\uff3c"), 387db96d56Sopenharmony_ci (b"\xa1\xc0\\", "strict", "\uff3c\\"), 397db96d56Sopenharmony_ci (b"\x8eXY", "replace", "\ufffdXY"), 407db96d56Sopenharmony_ci) 417db96d56Sopenharmony_ci 427db96d56Sopenharmony_ciclass Test_EUC_JIS_2004(multibytecodec_support.TestBase, 437db96d56Sopenharmony_ci unittest.TestCase): 447db96d56Sopenharmony_ci encoding = 'euc_jis_2004' 457db96d56Sopenharmony_ci tstring = multibytecodec_support.load_teststring('euc_jisx0213') 467db96d56Sopenharmony_ci codectests = euc_commontests 477db96d56Sopenharmony_ci xmlcharnametest = ( 487db96d56Sopenharmony_ci "\xab\u211c\xbb = \u2329\u1234\u232a", 497db96d56Sopenharmony_ci b"\xa9\xa8ℜ\xa9\xb2 = ⟨ሴ⟩" 507db96d56Sopenharmony_ci ) 517db96d56Sopenharmony_ci 527db96d56Sopenharmony_ciclass Test_EUC_JISX0213(multibytecodec_support.TestBase, 537db96d56Sopenharmony_ci unittest.TestCase): 547db96d56Sopenharmony_ci encoding = 'euc_jisx0213' 557db96d56Sopenharmony_ci tstring = multibytecodec_support.load_teststring('euc_jisx0213') 567db96d56Sopenharmony_ci codectests = euc_commontests 577db96d56Sopenharmony_ci xmlcharnametest = ( 587db96d56Sopenharmony_ci "\xab\u211c\xbb = \u2329\u1234\u232a", 597db96d56Sopenharmony_ci b"\xa9\xa8ℜ\xa9\xb2 = ⟨ሴ⟩" 607db96d56Sopenharmony_ci ) 617db96d56Sopenharmony_ci 627db96d56Sopenharmony_ciclass Test_EUC_JP_COMPAT(multibytecodec_support.TestBase, 637db96d56Sopenharmony_ci unittest.TestCase): 647db96d56Sopenharmony_ci encoding = 'euc_jp' 657db96d56Sopenharmony_ci tstring = multibytecodec_support.load_teststring('euc_jp') 667db96d56Sopenharmony_ci codectests = euc_commontests + ( 677db96d56Sopenharmony_ci ("\xa5", "strict", b"\x5c"), 687db96d56Sopenharmony_ci ("\u203e", "strict", b"\x7e"), 697db96d56Sopenharmony_ci ) 707db96d56Sopenharmony_ci 717db96d56Sopenharmony_cishiftjis_commonenctests = ( 727db96d56Sopenharmony_ci (b"abc\x80\x80\x82\x84", "strict", None), 737db96d56Sopenharmony_ci (b"abc\xf8", "strict", None), 747db96d56Sopenharmony_ci (b"abc\x80\x80\x82\x84def", "ignore", "abc\uff44def"), 757db96d56Sopenharmony_ci) 767db96d56Sopenharmony_ci 777db96d56Sopenharmony_ciclass Test_SJIS_COMPAT(multibytecodec_support.TestBase, unittest.TestCase): 787db96d56Sopenharmony_ci encoding = 'shift_jis' 797db96d56Sopenharmony_ci tstring = multibytecodec_support.load_teststring('shift_jis') 807db96d56Sopenharmony_ci codectests = shiftjis_commonenctests + ( 817db96d56Sopenharmony_ci (b"abc\x80\x80\x82\x84", "replace", "abc\ufffd\ufffd\uff44"), 827db96d56Sopenharmony_ci (b"abc\x80\x80\x82\x84\x88", "replace", "abc\ufffd\ufffd\uff44\ufffd"), 837db96d56Sopenharmony_ci 847db96d56Sopenharmony_ci (b"\\\x7e", "strict", "\\\x7e"), 857db96d56Sopenharmony_ci (b"\x81\x5f\x81\x61\x81\x7c", "strict", "\uff3c\u2016\u2212"), 867db96d56Sopenharmony_ci (b"abc\x81\x39", "replace", "abc\ufffd9"), 877db96d56Sopenharmony_ci (b"abc\xEA\xFC", "replace", "abc\ufffd\ufffd"), 887db96d56Sopenharmony_ci (b"abc\xFF\x58", "replace", "abc\ufffdX"), 897db96d56Sopenharmony_ci ) 907db96d56Sopenharmony_ci 917db96d56Sopenharmony_ciclass Test_SJIS_2004(multibytecodec_support.TestBase, unittest.TestCase): 927db96d56Sopenharmony_ci encoding = 'shift_jis_2004' 937db96d56Sopenharmony_ci tstring = multibytecodec_support.load_teststring('shift_jis') 947db96d56Sopenharmony_ci codectests = shiftjis_commonenctests + ( 957db96d56Sopenharmony_ci (b"\\\x7e", "strict", "\xa5\u203e"), 967db96d56Sopenharmony_ci (b"\x81\x5f\x81\x61\x81\x7c", "strict", "\\\u2016\u2212"), 977db96d56Sopenharmony_ci (b"abc\xEA\xFC", "strict", "abc\u64bf"), 987db96d56Sopenharmony_ci (b"\x81\x39xy", "replace", "\ufffd9xy"), 997db96d56Sopenharmony_ci (b"\xFF\x58xy", "replace", "\ufffdXxy"), 1007db96d56Sopenharmony_ci (b"\x80\x80\x82\x84xy", "replace", "\ufffd\ufffd\uff44xy"), 1017db96d56Sopenharmony_ci (b"\x80\x80\x82\x84\x88xy", "replace", "\ufffd\ufffd\uff44\u5864y"), 1027db96d56Sopenharmony_ci (b"\xFC\xFBxy", "replace", '\ufffd\u95b4y'), 1037db96d56Sopenharmony_ci ) 1047db96d56Sopenharmony_ci xmlcharnametest = ( 1057db96d56Sopenharmony_ci "\xab\u211c\xbb = \u2329\u1234\u232a", 1067db96d56Sopenharmony_ci b"\x85Gℜ\x85Q = ⟨ሴ⟩" 1077db96d56Sopenharmony_ci ) 1087db96d56Sopenharmony_ci 1097db96d56Sopenharmony_ciclass Test_SJISX0213(multibytecodec_support.TestBase, unittest.TestCase): 1107db96d56Sopenharmony_ci encoding = 'shift_jisx0213' 1117db96d56Sopenharmony_ci tstring = multibytecodec_support.load_teststring('shift_jisx0213') 1127db96d56Sopenharmony_ci codectests = shiftjis_commonenctests + ( 1137db96d56Sopenharmony_ci (b"abc\x80\x80\x82\x84", "replace", "abc\ufffd\ufffd\uff44"), 1147db96d56Sopenharmony_ci (b"abc\x80\x80\x82\x84\x88", "replace", "abc\ufffd\ufffd\uff44\ufffd"), 1157db96d56Sopenharmony_ci 1167db96d56Sopenharmony_ci # sjis vs cp932 1177db96d56Sopenharmony_ci (b"\\\x7e", "replace", "\xa5\u203e"), 1187db96d56Sopenharmony_ci (b"\x81\x5f\x81\x61\x81\x7c", "replace", "\x5c\u2016\u2212"), 1197db96d56Sopenharmony_ci ) 1207db96d56Sopenharmony_ci xmlcharnametest = ( 1217db96d56Sopenharmony_ci "\xab\u211c\xbb = \u2329\u1234\u232a", 1227db96d56Sopenharmony_ci b"\x85Gℜ\x85Q = ⟨ሴ⟩" 1237db96d56Sopenharmony_ci ) 1247db96d56Sopenharmony_ci 1257db96d56Sopenharmony_ciif __name__ == "__main__": 1267db96d56Sopenharmony_ci unittest.main() 127