Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r46152:9aa3003707ff Date: 2011-08-01 15:45 +0200 http://bitbucket.org/pypy/pypy/changeset/9aa3003707ff/
Log: Test and fix. diff --git a/pypy/module/_multibytecodec/app_multibytecodec.py b/pypy/module/_multibytecodec/app_multibytecodec.py --- a/pypy/module/_multibytecodec/app_multibytecodec.py +++ b/pypy/module/_multibytecodec/app_multibytecodec.py @@ -16,9 +16,10 @@ while True: if size is None: data = read() + final = True else: data = read(size) - final = not data + final = not data output = MultibyteIncrementalDecoder.decode(self, data, final) if output or final: return output @@ -41,7 +42,7 @@ return self def write(self, data): - self.stream.write(MultibyteIncrementalEncoder.encode(self, data)) + self.stream.write(MultibyteIncrementalEncoder.encode(self, data, True)) def writelines(self, lines): for data in lines: diff --git a/pypy/module/_multibytecodec/test/test_app_stream.py b/pypy/module/_multibytecodec/test/test_app_stream.py --- a/pypy/module/_multibytecodec/test/test_app_stream.py +++ b/pypy/module/_multibytecodec/test/test_app_stream.py @@ -40,6 +40,23 @@ c = r.read(1) assert c == '' + def test_reader_replace(self): + class FakeFile: + def __init__(self, data): + self.data = data + def read(self): + return self.data + # + r = self.HzStreamReader(FakeFile("!~{a"), "replace") + c = r.read() + assert c == u'!\ufffd' + # + r = self.HzStreamReader(FakeFile("!~{a")) + r.errors = "replace" + assert r.errors == "replace" + c = r.read() + assert c == u'!\ufffd' + def test_writer(self): class FakeFile: def __init__(self): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit