diff options
| author | Antoine Pitrou <solipsis@pitrou.net> | 2013-10-03 17:55:41 (GMT) | 
|---|---|---|
| committer | Antoine Pitrou <solipsis@pitrou.net> | 2013-10-03 17:55:41 (GMT) | 
| commit | 60b183407cbcd19b211c2dd7ed9a59ff189844a8 (patch) | |
| tree | 8d57a6e32f03b9bb54fcd23e7b2b14ea57691e76 /Lib/test/test_buffer.py | |
| parent | def0a4c298358c50b0b53a8113551e9aee3532e5 (diff) | |
| download | cpython-60b183407cbcd19b211c2dd7ed9a59ff189844a8.zip cpython-60b183407cbcd19b211c2dd7ed9a59ff189844a8.tar.gz cpython-60b183407cbcd19b211c2dd7ed9a59ff189844a8.tar.bz2  | |
Issue #19014: memoryview.cast() is now allowed on zero-length views.
Diffstat (limited to 'Lib/test/test_buffer.py')
| -rw-r--r-- | Lib/test/test_buffer.py | 13 | 
1 files changed, 10 insertions, 3 deletions
diff --git a/Lib/test/test_buffer.py b/Lib/test/test_buffer.py index 747e2a2..04e3f61 100644 --- a/Lib/test/test_buffer.py +++ b/Lib/test/test_buffer.py @@ -2432,15 +2432,22 @@ class TestBufferProtocol(unittest.TestCase):          self.assertRaises(ValueError, get_contiguous, nd[::-1], PyBUF_READ, 'C')      def test_memoryview_cast_zero_shape(self): -        # Casts are undefined if shape contains zeros. These arrays are -        # regarded as C-contiguous by Numpy and PyBuffer_GetContiguous(), -        # so they are not caught by the test for C-contiguity in memory_cast(). +        # Casts are undefined if buffer is multidimensional and shape +        # contains zeros. These arrays are regarded as C-contiguous by +        # Numpy and PyBuffer_GetContiguous(), so they are not caught by +        # the test for C-contiguity in memory_cast().          items = [1,2,3]          for shape in ([0,3,3], [3,0,3], [0,3,3]):              ex = ndarray(items, shape=shape)              self.assertTrue(ex.c_contiguous)              msrc = memoryview(ex)              self.assertRaises(TypeError, msrc.cast, 'c') +        # Monodimensional empty view can be cast (issue #19014). +        for fmt, _, _ in iter_format(1, 'memoryview'): +            msrc = memoryview(b'') +            m = msrc.cast(fmt) +            self.assertEqual(m.tobytes(), b'') +            self.assertEqual(m.tolist(), [])      def test_memoryview_struct_module(self):  | 
