Skip to content

Commit e0b6fa5

Browse files
committed
merge new tests with existing tests
1 parent a5163e5 commit e0b6fa5

1 file changed

Lines changed: 28 additions & 31 deletions

File tree

‎Lib/test/test_memoryview.py‎

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -579,19 +579,6 @@ def __buffer__(self, flags):
579579
view.release()
580580
data.clear()
581581

582-
def test_comparison_blocks_gc_clear_during_buffer_callback(self):
583-
_testcapi = import_helper.import_module('_testcapi')
584-
data = bytearray(b'abc')
585-
view = memoryview(data)
586-
587-
class Other:
588-
def __buffer__(self, flags):
589-
_testcapi.clear_memoryview(view)
590-
return memoryview(data)
591-
592-
self.assertTrue(view == Other())
593-
self.assertEqual(view.tobytes(), b'abc')
594-
595582
def test_comparison_releases_buffer_after_access(self):
596583
data = bytearray(b'abc')
597584
view = memoryview(data)
@@ -608,24 +595,6 @@ def __release_buffer__(self, buffer):
608595
self.assertIsNone(cm.unraisable)
609596
data.clear()
610597

611-
def test_assignment_blocks_release_during_index_callback(self):
612-
data = bytearray(b'abc')
613-
view = memoryview(data).cast('c')
614-
assert_raises = self.assertRaises
615-
616-
class Index:
617-
def __index__(self):
618-
with assert_raises(BufferError):
619-
view.release()
620-
with assert_raises(BufferError):
621-
data.clear()
622-
return 0
623-
624-
view[Index()] = b'x'
625-
self.assertEqual(data, b'xbc')
626-
view.release()
627-
data.clear()
628-
629598
def test_assignment_releases_buffer_after_access(self):
630599
data = bytearray(b'abc')
631600
view = memoryview(data)
@@ -786,6 +755,17 @@ def test_gc_cleared_view(self):
786755
with self.assertRaisesRegex(ValueError, "released"):
787756
view.tobytes()
788757

758+
data = bytearray(b"abc")
759+
view = memoryview(data)
760+
761+
class Other:
762+
def __buffer__(self, flags):
763+
_testcapi.clear_memoryview(view)
764+
return memoryview(data)
765+
766+
self.assertTrue(view == Other())
767+
self.assertEqual(view.tobytes(), b"abc")
768+
789769
def test_cast_order(self):
790770
# gh-78959: cast(order=...) selects the result memory layout.
791771
b = bytearray(range(6))
@@ -992,6 +972,23 @@ def __bool__(self):
992972
m[0] = MyBool()
993973
self.assertEqual(m.tobytes(), b'\xff'*size)
994974

975+
data = bytearray(b'abc')
976+
m = memoryview(data).cast('c')
977+
assert_raises = self.assertRaises
978+
979+
class CatchingIndex:
980+
def __index__(self):
981+
with assert_raises(BufferError):
982+
release()
983+
with assert_raises(BufferError):
984+
data.clear()
985+
return 0
986+
987+
m[CatchingIndex()] = b'x'
988+
self.assertEqual(data, b'xbc')
989+
m.release()
990+
data.clear()
991+
995992
def test_buffer_reference_loop(self):
996993
m = memoryview(b'abc').__buffer__(0)
997994
o = MyObject()

0 commit comments

Comments
 (0)