test_codecencodings_iso2022.py 1.36 KB
Newer Older
1 2
# Codec encoding tests for ISO 2022 encodings.

3
from test import multibytecodec_support
4 5 6 7 8 9 10 11 12
import unittest

COMMON_CODEC_TESTS = (
        # invalid bytes
        (b'ab\xFFcd', 'replace', 'ab\uFFFDcd'),
        (b'ab\x1Bdef', 'replace', 'ab\x1Bdef'),
        (b'ab\x1B$def', 'replace', 'ab\uFFFD'),
    )

13
class Test_ISO2022_JP(multibytecodec_support.TestBase, unittest.TestCase):
14
    encoding = 'iso2022_jp'
15
    tstring = multibytecodec_support.load_teststring('iso2022_jp')
16 17 18 19
    codectests = COMMON_CODEC_TESTS + (
        (b'ab\x1BNdef', 'replace', 'ab\x1BNdef'),
    )

20
class Test_ISO2022_JP2(multibytecodec_support.TestBase, unittest.TestCase):
21
    encoding = 'iso2022_jp_2'
22
    tstring = multibytecodec_support.load_teststring('iso2022_jp')
23 24 25 26
    codectests = COMMON_CODEC_TESTS + (
        (b'ab\x1BNdef', 'replace', 'abdef'),
    )

27
class Test_ISO2022_KR(multibytecodec_support.TestBase, unittest.TestCase):
28
    encoding = 'iso2022_kr'
29
    tstring = multibytecodec_support.load_teststring('iso2022_kr')
30 31 32 33 34 35
    codectests = COMMON_CODEC_TESTS + (
        (b'ab\x1BNdef', 'replace', 'ab\x1BNdef'),
    )

    # iso2022_kr.txt cannot be used to test "chunk coding": the escape
    # sequence is only written on the first line
36
    @unittest.skip('iso2022_kr.txt cannot be used to test "chunk coding"')
37 38 39 40
    def test_chunkcoding(self):
        pass

if __name__ == "__main__":
41
    unittest.main()