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