Author: Matti Picus <matti.pi...@gmail.com>
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 @@
+&#131340;&#282;&#40302;&#32595;&#27910;
+&#202;&#202;&#772;&#234; &#234;&#234;&#772;
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 @@
+&#65533;E&#65533;\&#65533;s&#65533;&#1677;&#65533;
+&#65533;f&#65533;b&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;
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
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to