@@ -455,6 +455,23 @@ def test_resize(self):
455455 writer .resize (_testcapi .PY_SSIZE_T_MAX )
456456 self .assertEqual (writer .finish (), b'x' * size )
457457
458+ @support .nomemtest
459+ def test_resize_error (self ):
460+ # Test PyBytesWriter_Resize() error
461+ init = b'x' * self .LARGE_BUFFER
462+ writer = self .create_writer (len (init ))
463+ writer .write (0 , init )
464+ size = len (init ) + 100
465+ with self .assertRaises (MemoryError ):
466+ with support .inject_memory_error_cm ():
467+ writer .resize (size )
468+ suffix = b'still working'
469+ writer .write_bytes (suffix , - 1 )
470+ self .assertEqual (writer .finish (), init + suffix )
471+
472+ # Note: PyBytesWriter_Resize() leaves the buffer unchanged (no resize)
473+ # if the new size is smaller than the allocated size
474+
458475 def test_grow (self ):
459476 # Test PyBytesWriter_Grow()
460477 writer = self .create_writer (0 )
@@ -513,24 +530,20 @@ def test_grow(self):
513530 self .assertEqual (writer .finish (), b'x' * size )
514531
515532 @support .nomemtest
516- def test_resize_error (self ):
517- # Test PyBytesWriter_Resize () error
533+ def test_grow_error (self ):
534+ # Test PyBytesWriter_Grow () error
518535 init = b'x' * self .LARGE_BUFFER
519536 writer = self .create_writer (len (init ))
520537 writer .write (0 , init )
521- size = len (init ) + 100
522- try :
523- with self .assertRaises (MemoryError ):
524- _testcapi .set_nomemory (0 )
525- writer .resize (size )
526- finally :
527- _testcapi .remove_mem_hooks ()
538+ with self .assertRaises (MemoryError ):
539+ with support .inject_memory_error_cm ():
540+ writer .grow (100 )
528541 suffix = b'still working'
529542 writer .write_bytes (suffix , - 1 )
530543 self .bytes_equal (writer .finish (), init + suffix )
531544
532- # Note: PyBytesWriter_Resize () leaves the buffer unchanged (no resize)
533- # if the new size is smaller than the allocated size
545+ # Note: PyBytesWriter_Grow () leaves the buffer unchanged (no resize)
546+ # if grow is negative.
534547
535548 def test_format_i (self ):
536549 # Test PyBytesWriter_Format()
0 commit comments