[pypy-commit] pypy refactor-buffer-api: fix buffer conversion when readonly
bdkearns
noreply at buildbot.pypy.org
Thu Apr 24 09:40:34 CEST 2014
Author: Brian Kearns <bdkearns at 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):
More information about the pypy-commit
mailing list