Author: Matti Picus <[email protected]>
Branch: unicode-utf8-py3
Changeset: r95364:2a5ae5b4e029
Date: 2018-11-23 09:26 -0600
http://bitbucket.org/pypy/pypy/changeset/2a5ae5b4e029/
Log: add missing test files
diff --git a/pypy/module/_multibytecodec/test/big5hkscs-utf8.txt
b/pypy/module/_multibytecodec/test/big5hkscs-utf8.txt
new file mode 100644
--- /dev/null
+++ b/pypy/module/_multibytecodec/test/big5hkscs-utf8.txt
@@ -0,0 +1,2 @@
+𠄌Ě鵮罓洆
+ÊÊ̄ê êê̄
diff --git a/pypy/module/_multibytecodec/test/big5hkscs.txt
b/pypy/module/_multibytecodec/test/big5hkscs.txt
new file mode 100644
--- /dev/null
+++ b/pypy/module/_multibytecodec/test/big5hkscs.txt
@@ -0,0 +1,2 @@
+�E�\�s�ڍ�
+�f�b�� ����
diff --git a/pypy/module/_multibytecodec/test/test_multibtye_codecs.py
b/pypy/module/_multibytecodec/test/test_multibtye_codecs.py
new file mode 100644
--- /dev/null
+++ b/pypy/module/_multibytecodec/test/test_multibtye_codecs.py
@@ -0,0 +1,64 @@
+import os
+
+class AppTestPartialEvaluation:
+ spaceconfig = dict(usemodules=['_multibytecodec', '_codecs'])
+
+ def setup_class(cls):
+ cls.w_myfile = cls.space.wrap(os.path.dirname(__file__))
+
+ def test_callback_None_index(self):
+ import _multibytecodec, _codecs
+ codec = _multibytecodec.__getcodec('cp932')
+ def myreplace(exc):
+ return ('x', None)
+ _codecs.register_error("test.cjktest", myreplace)
+ raises(TypeError, codec.encode, '\udeee', 'test.cjktest')
+
+ def test_callback_backward_index(self):
+ import _multibytecodec, _codecs
+ codec = _multibytecodec.__getcodec('cp932')
+ def myreplace(exc):
+ if myreplace.limit > 0:
+ myreplace.limit -= 1
+ return ('REPLACED', 0)
+ else:
+ return ('TERMINAL', exc.end)
+ myreplace.limit = 3
+ _codecs.register_error("test.cjktest", myreplace)
+ assert (codec.encode('abcd' + '\udeee' + 'efgh', 'test.cjktest') ==
+ (b'abcdREPLACEDabcdREPLACEDabcdREPLACEDabcdTERMINALefgh', 9))
+
+ def test_callback_forward_index(self):
+ import _multibytecodec, _codecs
+ codec = _multibytecodec.__getcodec('cp932')
+ def myreplace(exc):
+ return ('REPLACED', exc.end + 2)
+ _codecs.register_error("test.cjktest", myreplace)
+ assert (codec.encode('abcd' + '\udeee' + 'efgh', 'test.cjktest') ==
+ (b'abcdREPLACEDgh', 9))
+
+ def _test_incrementalencoder(self):
+ import _multibytecodec, _codecs, _io
+ with open(self.myfile + '/shift_jis.txt', 'rb') as fid:
+ uni_str = fid.read()
+ with open(self.myfile + '/shift_jis-utf8.txt', 'rb') as fid:
+ utf8str = fid.read()
+ UTF8Reader = _codecs.lookup('utf-8').streamreader
+ for sizehint in [None] + list(range(1, 33)) + \
+ [64, 128, 256, 512, 1024]:
+ istream = UTF8Reader(_io.BytesIO(utf8str))
+ ostream = _io.BytesIO()
+ codec = _multibytecodec.__getcodec('cp932')
+ print(dir(codec))
+ encoder = codec.incrementalencoder()
+ while 1:
+ if sizehint is not None:
+ data = istream.read(sizehint)
+ else:
+ data = istream.read()
+
+ if not data:
+ break
+ e = encoder.encode(data)
+ ostream.write(e)
+ assert ostream.getvalue() == uni_str
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit