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