@@ -4591,6 +4591,27 @@ def test_c_buffer_invalid_flags(self):
45914591 self .assertRaises (SystemError , buf .__buffer__ , PyBUF_READ )
45924592 self .assertRaises (SystemError , buf .__buffer__ , PyBUF_WRITE )
45934593
4594+ @unittest .skipIf (_testcapi is None , "requires _testcapi" )
4595+ def test_c_fill_buffer_invalid_flags (self ):
4596+ # PyBuffer_FillInfo
4597+ source = b"abc"
4598+ self .assertRaises (SystemError , _testcapi .buffer_fill_info ,
4599+ source , 0 , PyBUF_READ )
4600+ self .assertRaises (SystemError , _testcapi .buffer_fill_info ,
4601+ source , 0 , PyBUF_WRITE )
4602+
4603+ @unittest .skipIf (_testcapi is None , "requires _testcapi" )
4604+ def test_c_fill_buffer_readonly_and_writable (self ):
4605+ source = b"abc"
4606+ with _testcapi .buffer_fill_info (source , 1 , PyBUF_SIMPLE ) as m :
4607+ self .assertEqual (bytes (m ), b"abc" )
4608+ self .assertTrue (m .readonly )
4609+ with _testcapi .buffer_fill_info (source , 0 , PyBUF_WRITABLE ) as m :
4610+ self .assertEqual (bytes (m ), b"abc" )
4611+ self .assertFalse (m .readonly )
4612+ self .assertRaises (BufferError , _testcapi .buffer_fill_info ,
4613+ source , 1 , PyBUF_WRITABLE )
4614+
45944615 def test_inheritance (self ):
45954616 class A (bytearray ):
45964617 def __buffer__ (self , flags ):
0 commit comments