summaryrefslogtreecommitdiff
path: root/Lib/test/test_buffer.py
diff options
context:
space:
mode:
authorAntoine Pitrou <pitrou@free.fr>2018-04-14 19:49:21 +0200
committerGitHub <noreply@github.com>2018-04-14 19:49:21 +0200
commit480ab05d5fee2b8fa161f799af33086a4e68c7dd (patch)
treeca45c39193fb970c4d300b27346a9dcf8aaac814 /Lib/test/test_buffer.py
parentb1dc07509f78b354e83f5f4a902f1ff80c7bb05d (diff)
downloadcpython-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.py39
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):