Author: Brian Kearns <bdkea...@gmail.com> Branch: refactor-buffer-api Changeset: r70921:1e39f97163c6 Date: 2014-04-24 01:49 -0400 http://bitbucket.org/pypy/pypy/changeset/1e39f97163c6/
Log: fix buffer conversion when readonly diff --git a/pypy/module/_io/test/test_bufferedio.py b/pypy/module/_io/test/test_bufferedio.py --- a/pypy/module/_io/test/test_bufferedio.py +++ b/pypy/module/_io/test/test_bufferedio.py @@ -139,6 +139,8 @@ raw = _io.FileIO(self.tmpfile) f = _io.BufferedReader(raw) assert f.readinto(a) == 5 + exc = raises(TypeError, f.readinto, buffer(b"hello")) + assert str(exc.value) == "must be read-write buffer, not buffer" exc = raises(TypeError, f.readinto, memoryview(b"hello")) assert str(exc.value) == "must be read-write buffer, not memoryview" f.close() diff --git a/pypy/module/_io/test/test_bytesio.py b/pypy/module/_io/test/test_bytesio.py --- a/pypy/module/_io/test/test_bytesio.py +++ b/pypy/module/_io/test/test_bytesio.py @@ -97,6 +97,8 @@ a2 = bytearray('testing') assert b.readinto(a1) == 1 assert b.readinto(a2) == 4 + exc = raises(TypeError, b.readinto, buffer(b"hello")) + assert str(exc.value) == "must be read-write buffer, not buffer" exc = raises(TypeError, b.readinto, memoryview(b"hello")) assert str(exc.value) == "must be read-write buffer, not memoryview" b.close() diff --git a/pypy/module/_io/test/test_fileio.py b/pypy/module/_io/test/test_fileio.py --- a/pypy/module/_io/test/test_fileio.py +++ b/pypy/module/_io/test/test_fileio.py @@ -135,6 +135,8 @@ a = bytearray('x' * 10) f = _io.FileIO(self.tmpfile, 'r+') assert f.readinto(a) == 10 + exc = raises(TypeError, f.readinto, buffer(b"hello")) + assert str(exc.value) == "must be read-write buffer, not buffer" exc = raises(TypeError, f.readinto, memoryview(b"hello")) assert str(exc.value) == "must be read-write buffer, not memoryview" f.close() diff --git a/pypy/objspace/std/bufferobject.py b/pypy/objspace/std/bufferobject.py --- a/pypy/objspace/std/bufferobject.py +++ b/pypy/objspace/std/bufferobject.py @@ -22,6 +22,7 @@ self.buf = buf def buffer_w(self, space, flags): + space.check_buf_flags(flags, self.buf.readonly) return self.buf def readbuf_w(self, space): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit