summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2011-05-24 22:17:13 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2011-05-24 22:17:13 (GMT)
commit62666e1db149ae777b8a472a67d339617c66a259 (patch)
treecf4660b1dc62f323bee16a88b9d5d44b477453b2
parent1f4560c872f56e0d416dd091e9dbccbb93f716ba (diff)
parent8ed8416c2bbb7c56a935762304a5ed6fdd0a1b6f (diff)
downloadcpython-62666e1db149ae777b8a472a67d339617c66a259.zip
cpython-62666e1db149ae777b8a472a67d339617c66a259.tar.gz
cpython-62666e1db149ae777b8a472a67d339617c66a259.tar.bz2
(Merge 3.2) Issue #12057: Add tests for the HZ encoding
-rw-r--r--Lib/test/cjkencodings/hz-utf8.txt2
-rw-r--r--Lib/test/cjkencodings/hz.txt2
-rw-r--r--Lib/test/test_codecencodings_cn.py29
3 files changed, 33 insertions, 0 deletions
diff --git a/Lib/test/cjkencodings/hz-utf8.txt b/Lib/test/cjkencodings/hz-utf8.txt
new file mode 100644
index 0000000..7c11735
--- /dev/null
+++ b/Lib/test/cjkencodings/hz-utf8.txt
@@ -0,0 +1,2 @@
+This sentence is in ASCII.
+The next sentence is in GB.己所不欲,勿施於人。Bye.
diff --git a/Lib/test/cjkencodings/hz.txt b/Lib/test/cjkencodings/hz.txt
new file mode 100644
index 0000000..f882d46
--- /dev/null
+++ b/Lib/test/cjkencodings/hz.txt
@@ -0,0 +1,2 @@
+This sentence is in ASCII.
+The next sentence is in GB.~{<:Ky2;S{#,NpJ)l6HK!#~}Bye.
diff --git a/Lib/test/test_codecencodings_cn.py b/Lib/test/test_codecencodings_cn.py
index a2d9718..dca9f10 100644
--- a/Lib/test/test_codecencodings_cn.py
+++ b/Lib/test/test_codecencodings_cn.py
@@ -50,6 +50,35 @@ class Test_GB18030(test_multibytecodec_support.TestBase, unittest.TestCase):
)
has_iso10646 = True
+class Test_HZ(test_multibytecodec_support.TestBase, unittest.TestCase):
+ encoding = 'hz'
+ tstring = test_multibytecodec_support.load_teststring('hz')
+ codectests = (
+ # test '~\n' (3 lines)
+ (b'This sentence is in ASCII.\n'
+ b'The next sentence is in GB.~{<:Ky2;S{#,~}~\n'
+ b'~{NpJ)l6HK!#~}Bye.\n',
+ 'strict',
+ 'This sentence is in ASCII.\n'
+ 'The next sentence is in GB.'
+ '\u5df1\u6240\u4e0d\u6b32\uff0c\u52ff\u65bd\u65bc\u4eba\u3002'
+ 'Bye.\n'),
+ # test '~\n' (4 lines)
+ (b'This sentence is in ASCII.\n'
+ b'The next sentence is in GB.~\n'
+ b'~{<:Ky2;S{#,NpJ)l6HK!#~}~\n'
+ b'Bye.\n',
+ 'strict',
+ 'This sentence is in ASCII.\n'
+ 'The next sentence is in GB.'
+ '\u5df1\u6240\u4e0d\u6b32\uff0c\u52ff\u65bd\u65bc\u4eba\u3002'
+ 'Bye.\n'),
+ # invalid bytes
+ (b'ab~cd', 'replace', 'ab\uFFFDd'),
+ (b'ab\xffcd', 'replace', 'ab\uFFFDcd'),
+ (b'ab~{\x81\x81\x41\x44~}cd', 'replace', 'ab\uFFFD\uFFFD\u804Acd'),
+ )
+
def test_main():
support.run_unittest(__name__)