10a8c90248264a8b26970b4473770bcc3df8515fJosh Gao#!/usr/bin/env python 20a8c90248264a8b26970b4473770bcc3df8515fJosh Gao# 30a8c90248264a8b26970b4473770bcc3df8515fJosh Gao# Codec encoding tests for ISO 2022 encodings. 40a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 50a8c90248264a8b26970b4473770bcc3df8515fJosh Gaofrom test import test_support 60a8c90248264a8b26970b4473770bcc3df8515fJosh Gaofrom test import test_multibytecodec_support 70a8c90248264a8b26970b4473770bcc3df8515fJosh Gaoimport unittest 80a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 90a8c90248264a8b26970b4473770bcc3df8515fJosh GaoCOMMON_CODEC_TESTS = ( 100a8c90248264a8b26970b4473770bcc3df8515fJosh Gao # invalid bytes 110a8c90248264a8b26970b4473770bcc3df8515fJosh Gao (b'ab\xFFcd', 'replace', u'ab\uFFFDcd'), 120a8c90248264a8b26970b4473770bcc3df8515fJosh Gao (b'ab\x1Bdef', 'replace', u'ab\x1Bdef'), 130a8c90248264a8b26970b4473770bcc3df8515fJosh Gao (b'ab\x1B$def', 'replace', u'ab\uFFFD'), 140a8c90248264a8b26970b4473770bcc3df8515fJosh Gao ) 150a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 160a8c90248264a8b26970b4473770bcc3df8515fJosh Gaoclass Test_ISO2022_JP(test_multibytecodec_support.TestBase, unittest.TestCase): 170a8c90248264a8b26970b4473770bcc3df8515fJosh Gao encoding = 'iso2022_jp' 180a8c90248264a8b26970b4473770bcc3df8515fJosh Gao tstring = test_multibytecodec_support.load_teststring('iso2022_jp') 190a8c90248264a8b26970b4473770bcc3df8515fJosh Gao codectests = COMMON_CODEC_TESTS + ( 200a8c90248264a8b26970b4473770bcc3df8515fJosh Gao (b'ab\x1BNdef', 'replace', u'ab\x1BNdef'), 210a8c90248264a8b26970b4473770bcc3df8515fJosh Gao ) 220a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 230a8c90248264a8b26970b4473770bcc3df8515fJosh Gaoclass Test_ISO2022_JP2(test_multibytecodec_support.TestBase, unittest.TestCase): 240a8c90248264a8b26970b4473770bcc3df8515fJosh Gao encoding = 'iso2022_jp_2' 250a8c90248264a8b26970b4473770bcc3df8515fJosh Gao tstring = test_multibytecodec_support.load_teststring('iso2022_jp') 260a8c90248264a8b26970b4473770bcc3df8515fJosh Gao codectests = COMMON_CODEC_TESTS + ( 270a8c90248264a8b26970b4473770bcc3df8515fJosh Gao (b'ab\x1BNdef', 'replace', u'abdef'), 280a8c90248264a8b26970b4473770bcc3df8515fJosh Gao ) 290a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 300a8c90248264a8b26970b4473770bcc3df8515fJosh Gaoclass Test_ISO2022_KR(test_multibytecodec_support.TestBase, unittest.TestCase): 310a8c90248264a8b26970b4473770bcc3df8515fJosh Gao encoding = 'iso2022_kr' 320a8c90248264a8b26970b4473770bcc3df8515fJosh Gao tstring = test_multibytecodec_support.load_teststring('iso2022_kr') 330a8c90248264a8b26970b4473770bcc3df8515fJosh Gao codectests = COMMON_CODEC_TESTS + ( 340a8c90248264a8b26970b4473770bcc3df8515fJosh Gao (b'ab\x1BNdef', 'replace', u'ab\x1BNdef'), 350a8c90248264a8b26970b4473770bcc3df8515fJosh Gao ) 360a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 370a8c90248264a8b26970b4473770bcc3df8515fJosh Gao # iso2022_kr.txt cannot be used to test "chunk coding": the escape 380a8c90248264a8b26970b4473770bcc3df8515fJosh Gao # sequence is only written on the first line 390a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_chunkcoding(self): 400a8c90248264a8b26970b4473770bcc3df8515fJosh Gao pass 410a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 420a8c90248264a8b26970b4473770bcc3df8515fJosh Gaodef test_main(): 430a8c90248264a8b26970b4473770bcc3df8515fJosh Gao test_support.run_unittest(__name__) 440a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 450a8c90248264a8b26970b4473770bcc3df8515fJosh Gaoif __name__ == "__main__": 460a8c90248264a8b26970b4473770bcc3df8515fJosh Gao test_main() 47