1 #!/usr/bin/env python 2 # 3 # test_codecmaps_jp.py 4 # Codec mapping tests for Japanese encodings 5 # 6 7 from test import test_support 8 from test import test_multibytecodec_support 9 import unittest 10 11 class TestCP932Map(test_multibytecodec_support.TestBase_Mapping, 12 unittest.TestCase): 13 encoding = 'cp932' 14 mapfileurl = 'http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/' \ 15 'WINDOWS/CP932.TXT' 16 supmaps = [ 17 ('\x80', u'\u0080'), 18 ('\xa0', u'\uf8f0'), 19 ('\xfd', u'\uf8f1'), 20 ('\xfe', u'\uf8f2'), 21 ('\xff', u'\uf8f3'), 22 ] 23 for i in range(0xa1, 0xe0): 24 supmaps.append((chr(i), unichr(i+0xfec0))) 25 26 27 class TestEUCJPCOMPATMap(test_multibytecodec_support.TestBase_Mapping, 28 unittest.TestCase): 29 encoding = 'euc_jp' 30 mapfilename = 'EUC-JP.TXT' 31 mapfileurl = 'http://people.freebsd.org/~perky/i18n/EUC-JP.TXT' 32 33 34 class TestSJISCOMPATMap(test_multibytecodec_support.TestBase_Mapping, 35 unittest.TestCase): 36 encoding = 'shift_jis' 37 mapfilename = 'SHIFTJIS.TXT' 38 mapfileurl = 'http://www.unicode.org/Public/MAPPINGS/OBSOLETE' \ 39 '/EASTASIA/JIS/SHIFTJIS.TXT' 40 pass_enctest = [ 41 ('\x81_', u'\\'), 42 ] 43 pass_dectest = [ 44 ('\\', u'\xa5'), 45 ('~', u'\u203e'), 46 ('\x81_', u'\\'), 47 ] 48 49 class TestEUCJISX0213Map(test_multibytecodec_support.TestBase_Mapping, 50 unittest.TestCase): 51 encoding = 'euc_jisx0213' 52 mapfilename = 'EUC-JISX0213.TXT' 53 mapfileurl = 'http://people.freebsd.org/~perky/i18n/EUC-JISX0213.TXT' 54 55 56 class TestSJISX0213Map(test_multibytecodec_support.TestBase_Mapping, 57 unittest.TestCase): 58 encoding = 'shift_jisx0213' 59 mapfilename = 'SHIFT_JISX0213.TXT' 60 mapfileurl = 'http://people.freebsd.org/~perky/i18n/SHIFT_JISX0213.TXT' 61 62 63 def test_main(): 64 test_support.run_unittest(__name__) 65 66 if __name__ == "__main__": 67 test_main() 68