Home | History | Annotate | Download | only in test
      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