Home | History | Annotate | Download | only in test
      1 #!/usr/bin/env python
      2 #
      3 # Codec encoding tests for ISO 2022 encodings.
      4 
      5 from test import test_support
      6 from test import test_multibytecodec_support
      7 import unittest
      8 
      9 COMMON_CODEC_TESTS = (
     10         # invalid bytes
     11         (b'ab\xFFcd', 'replace', u'ab\uFFFDcd'),
     12         (b'ab\x1Bdef', 'replace', u'ab\x1Bdef'),
     13         (b'ab\x1B$def', 'replace', u'ab\uFFFD'),
     14     )
     15 
     16 class Test_ISO2022_JP(test_multibytecodec_support.TestBase, unittest.TestCase):
     17     encoding = 'iso2022_jp'
     18     tstring = test_multibytecodec_support.load_teststring('iso2022_jp')
     19     codectests = COMMON_CODEC_TESTS + (
     20         (b'ab\x1BNdef', 'replace', u'ab\x1BNdef'),
     21     )
     22 
     23 class Test_ISO2022_JP2(test_multibytecodec_support.TestBase, unittest.TestCase):
     24     encoding = 'iso2022_jp_2'
     25     tstring = test_multibytecodec_support.load_teststring('iso2022_jp')
     26     codectests = COMMON_CODEC_TESTS + (
     27         (b'ab\x1BNdef', 'replace', u'abdef'),
     28     )
     29 
     30 class Test_ISO2022_KR(test_multibytecodec_support.TestBase, unittest.TestCase):
     31     encoding = 'iso2022_kr'
     32     tstring = test_multibytecodec_support.load_teststring('iso2022_kr')
     33     codectests = COMMON_CODEC_TESTS + (
     34         (b'ab\x1BNdef', 'replace', u'ab\x1BNdef'),
     35     )
     36 
     37     # iso2022_kr.txt cannot be used to test "chunk coding": the escape
     38     # sequence is only written on the first line
     39     def test_chunkcoding(self):
     40         pass
     41 
     42 def test_main():
     43     test_support.run_unittest(__name__)
     44 
     45 if __name__ == "__main__":
     46     test_main()
     47