[pypy-commit] pypy refactor-buffer-api: fix readonly check in buffer.writebuf_w
bdkearns
noreply at buildbot.pypy.org
Thu Apr 24 21:37:41 CEST 2014
Author: Brian Kearns <bdkearns at gmail.com>
Branch: refactor-buffer-api
Changeset: r70932:494600a98b1a
Date: 2014-04-24 15:31 -0400
http://bitbucket.org/pypy/pypy/changeset/494600a98b1a/
Log: fix readonly check in buffer.writebuf_w
diff --git a/pypy/module/struct/test/test_struct.py b/pypy/module/struct/test/test_struct.py
--- a/pypy/module/struct/test/test_struct.py
+++ b/pypy/module/struct/test/test_struct.py
@@ -369,6 +369,8 @@
assert str(buffer(b)) == ('\x00' * 2 +
self.struct.pack("ii", 17, 42) +
'\x00' * (19-sz-2))
+ exc = raises(TypeError, self.struct.pack_into, "ii", buffer(b), 0, 17, 42)
+ assert str(exc.value) == "buffer is read-only"
exc = raises(TypeError, self.struct.pack_into, "ii", 'test', 0, 17, 42)
assert str(exc.value) == "Cannot use string as modifiable buffer"
exc = raises(self.struct.error, self.struct.pack_into, "ii", b[0:1], 0, 17, 42)
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
@@ -29,6 +29,9 @@
return self.buf
def writebuf_w(self, space):
+ if self.buf.readonly:
+ raise OperationError(space.w_TypeError, space.wrap(
+ "buffer is read-only"))
return self.buf
def charbuf_w(self, space):
More information about the pypy-commit
mailing list