diff options
author | Antoine Pitrou <pitrou@free.fr> | 2018-04-14 19:49:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-14 19:49:21 +0200 |
commit | 480ab05d5fee2b8fa161f799af33086a4e68c7dd (patch) | |
tree | ca45c39193fb970c4d300b27346a9dcf8aaac814 /Lib/test/test_buffer.py | |
parent | b1dc07509f78b354e83f5f4a902f1ff80c7bb05d (diff) | |
download | cpython-git-480ab05d5fee2b8fa161f799af33086a4e68c7dd.tar.gz |
bpo-33176: Add a toreadonly() method to memoryviews. (GH-6466)
Diffstat (limited to 'Lib/test/test_buffer.py')
-rw-r--r-- | Lib/test/test_buffer.py | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/Lib/test/test_buffer.py b/Lib/test/test_buffer.py index f302da415d..a3f3ef098a 100644 --- a/Lib/test/test_buffer.py +++ b/Lib/test/test_buffer.py @@ -924,23 +924,30 @@ class TestBufferProtocol(unittest.TestCase): except BufferError: # re-exporter does not provide full information return ex = result.obj if isinstance(result, memoryview) else result - self.assertIs(m.obj, ex) - self.assertEqual(m.nbytes, expected_len) - self.assertEqual(m.itemsize, itemsize) - self.assertEqual(m.format, fmt) - self.assertEqual(m.readonly, readonly) - self.assertEqual(m.ndim, ndim) - self.assertEqual(m.shape, tuple(shape)) - if not (sliced and suboffsets): - self.assertEqual(m.strides, tuple(strides)) - self.assertEqual(m.suboffsets, tuple(suboffsets)) - - n = 1 if ndim == 0 else len(lst) - self.assertEqual(len(m), n) - rep = result.tolist() if fmt else result.tobytes() - self.assertEqual(rep, lst) - self.assertEqual(m, result) + def check_memoryview(m, expected_readonly=readonly): + self.assertIs(m.obj, ex) + self.assertEqual(m.nbytes, expected_len) + self.assertEqual(m.itemsize, itemsize) + self.assertEqual(m.format, fmt) + self.assertEqual(m.readonly, expected_readonly) + self.assertEqual(m.ndim, ndim) + self.assertEqual(m.shape, tuple(shape)) + if not (sliced and suboffsets): + self.assertEqual(m.strides, tuple(strides)) + self.assertEqual(m.suboffsets, tuple(suboffsets)) + + n = 1 if ndim == 0 else len(lst) + self.assertEqual(len(m), n) + + rep = result.tolist() if fmt else result.tobytes() + self.assertEqual(rep, lst) + self.assertEqual(m, result) + + check_memoryview(m) + with m.toreadonly() as mm: + check_memoryview(mm, expected_readonly=True) + m.tobytes() # Releasing mm didn't release m def verify_getbuf(self, orig_ex, ex, req, sliced=False): def simple_fmt(ex): |