blob: e4c1839b4267b31b039344a797820bb59a9152c4 [file] [log] [blame]
Victor Stinneree497972011-05-31 00:01:24 +02001#!/usr/bin/env python
2#
3# Codec encoding tests for ISO 2022 encodings.
4
5from test import support
R David Murray75d9aca2012-04-09 09:37:52 -04006from test import multibytecodec_support
Victor Stinneree497972011-05-31 00:01:24 +02007import unittest
8
9COMMON_CODEC_TESTS = (
10 # invalid bytes
11 (b'ab\xFFcd', 'replace', 'ab\uFFFDcd'),
12 (b'ab\x1Bdef', 'replace', 'ab\x1Bdef'),
13 (b'ab\x1B$def', 'replace', 'ab\uFFFD'),
14 )
15
R David Murray75d9aca2012-04-09 09:37:52 -040016class Test_ISO2022_JP(multibytecodec_support.TestBase, unittest.TestCase):
Victor Stinneree497972011-05-31 00:01:24 +020017 encoding = 'iso2022_jp'
R David Murray75d9aca2012-04-09 09:37:52 -040018 tstring = multibytecodec_support.load_teststring('iso2022_jp')
Victor Stinneree497972011-05-31 00:01:24 +020019 codectests = COMMON_CODEC_TESTS + (
20 (b'ab\x1BNdef', 'replace', 'ab\x1BNdef'),
21 )
22
R David Murray75d9aca2012-04-09 09:37:52 -040023class Test_ISO2022_JP2(multibytecodec_support.TestBase, unittest.TestCase):
Victor Stinneree497972011-05-31 00:01:24 +020024 encoding = 'iso2022_jp_2'
R David Murray75d9aca2012-04-09 09:37:52 -040025 tstring = multibytecodec_support.load_teststring('iso2022_jp')
Victor Stinneree497972011-05-31 00:01:24 +020026 codectests = COMMON_CODEC_TESTS + (
27 (b'ab\x1BNdef', 'replace', 'abdef'),
28 )
29
R David Murray75d9aca2012-04-09 09:37:52 -040030class Test_ISO2022_KR(multibytecodec_support.TestBase, unittest.TestCase):
Victor Stinneree497972011-05-31 00:01:24 +020031 encoding = 'iso2022_kr'
R David Murray75d9aca2012-04-09 09:37:52 -040032 tstring = multibytecodec_support.load_teststring('iso2022_kr')
Victor Stinneree497972011-05-31 00:01:24 +020033 codectests = COMMON_CODEC_TESTS + (
34 (b'ab\x1BNdef', 'replace', '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
42def test_main():
43 support.run_unittest(__name__)
44
45if __name__ == "__main__":
46 test_main()