1 | #!/usr/bin/env python
|
---|
2 | #
|
---|
3 | # Codec encoding tests for ISO 2022 encodings.
|
---|
4 |
|
---|
5 | from test import test_support
|
---|
6 | from test import test_multibytecodec_support
|
---|
7 | import unittest
|
---|
8 |
|
---|
9 | COMMON_CODEC_TESTS = (
|
---|
10 | # invalid bytes
|
---|
11 | (b'ab\xFFcd', 'replace', u'ab\uFFFDcd'),
|
---|
12 | (b'ab\x1Bdef', 'replace', u'ab\x1Bdef'),
|
---|
13 | (b'ab\x1B$def', 'replace', u'ab\uFFFD'),
|
---|
14 | )
|
---|
15 |
|
---|
16 | class Test_ISO2022_JP(test_multibytecodec_support.TestBase, unittest.TestCase):
|
---|
17 | encoding = 'iso2022_jp'
|
---|
18 | tstring = test_multibytecodec_support.load_teststring('iso2022_jp')
|
---|
19 | codectests = COMMON_CODEC_TESTS + (
|
---|
20 | (b'ab\x1BNdef', 'replace', u'ab\x1BNdef'),
|
---|
21 | )
|
---|
22 |
|
---|
23 | class Test_ISO2022_JP2(test_multibytecodec_support.TestBase, unittest.TestCase):
|
---|
24 | encoding = 'iso2022_jp_2'
|
---|
25 | tstring = test_multibytecodec_support.load_teststring('iso2022_jp')
|
---|
26 | codectests = COMMON_CODEC_TESTS + (
|
---|
27 | (b'ab\x1BNdef', 'replace', u'abdef'),
|
---|
28 | )
|
---|
29 |
|
---|
30 | class Test_ISO2022_KR(test_multibytecodec_support.TestBase, unittest.TestCase):
|
---|
31 | encoding = 'iso2022_kr'
|
---|
32 | tstring = test_multibytecodec_support.load_teststring('iso2022_kr')
|
---|
33 | codectests = COMMON_CODEC_TESTS + (
|
---|
34 | (b'ab\x1BNdef', 'replace', u'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 |
|
---|
42 | def test_main():
|
---|
43 | test_support.run_unittest(__name__)
|
---|
44 |
|
---|
45 | if __name__ == "__main__":
|
---|
46 | test_main()
|
---|