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