1 #!/usr/bin/env python 2 # 3 # test_codecencodings_kr.py 4 # Codec encoding tests for ROK encodings. 5 # 6 7 from test import test_support 8 from test import test_multibytecodec_support 9 import unittest 10 11 class 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 23 class 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"), 33 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"), 51 ) 52 53 class 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 65 def test_main(): 66 test_support.run_unittest(__name__) 67 68 if __name__ == "__main__": 69 test_main() 70