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 @@ +𠄌Ě鵮罓洆 +ÊÊ̄ê êê̄ 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit