diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2008-12-07 00:07:51 +0000 |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2008-12-07 00:07:51 +0000 |
commit | 599db7f133ee842e94c89ceaa1724a0a84dded11 (patch) | |
tree | 0bcca713ebdd5e30abc4c1ed0da8cbcda3b47608 /Lib/test/test_bytes.py | |
parent | b7387a5e0d6e7adc28758e1f7597387d318e6ea7 (diff) | |
download | cpython-git-599db7f133ee842e94c89ceaa1724a0a84dded11.tar.gz |
Merged revisions 67619 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r67619 | antoine.pitrou | 2008-12-06 22:29:24 +0100 (sam., 06 déc. 2008) | 1 line
Issue #4509: bugs in bytearray with exports (buffer protocol)
........
Diffstat (limited to 'Lib/test/test_bytes.py')
-rw-r--r-- | Lib/test/test_bytes.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py index 45df1f34b5..36defb8a84 100644 --- a/Lib/test/test_bytes.py +++ b/Lib/test/test_bytes.py @@ -752,6 +752,38 @@ class ByteArrayTest(BaseBytesTest): self.assertEqual(b, b"") self.assertEqual(c, b"") + # XXX memoryview not available + def XXXtest_resize_forbidden(self): + # #4509: can't resize a bytearray when there are buffer exports, even + # if it wouldn't reallocate the underlying buffer. + # Furthermore, no destructive changes to the buffer may be applied + # before raising the error. + b = bytearray(range(10)) + v = memoryview(b) + def resize(n): + b[1:-1] = range(n + 1, 2*n - 1) + resize(10) + orig = b[:] + self.assertRaises(BufferError, resize, 11) + self.assertEquals(b, orig) + self.assertRaises(BufferError, resize, 9) + self.assertEquals(b, orig) + self.assertRaises(BufferError, resize, 0) + self.assertEquals(b, orig) + # Other operations implying resize + self.assertRaises(BufferError, b.pop, 0) + self.assertEquals(b, orig) + self.assertRaises(BufferError, b.remove, b[1]) + self.assertEquals(b, orig) + def delitem(): + del b[1] + self.assertRaises(BufferError, delitem) + self.assertEquals(b, orig) + # deleting a non-contiguous slice + def delslice(): + b[1:-1:2] = b"" + self.assertRaises(BufferError, delslice) + self.assertEquals(b, orig) class AssortedBytesTest(unittest.TestCase): # |