From 0e55a4efa7230ac30062f8e6ef6093fa6cf41261 Mon Sep 17 00:00:00 2001 From: azibom Date: Sun, 24 May 2026 17:24:04 +0000 Subject: [PATCH] Add test for _FlowControlMixin pause_writing exception handling --- Lib/test/test_asyncio/test_transports.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Lib/test/test_asyncio/test_transports.py b/Lib/test/test_asyncio/test_transports.py index 1781f1f67753f3a..6d715422674ab40 100644 --- a/Lib/test/test_asyncio/test_transports.py +++ b/Lib/test/test_asyncio/test_transports.py @@ -98,6 +98,29 @@ def get_write_buffer_size(self): self.assertTrue(transport._protocol_paused) self.assertEqual(transport.get_write_buffer_limits(), (128, 256)) + def test_flowcontrol_mixin_pause_writing_exception(self): + + class MyTransport(transports._FlowControlMixin, + transports.Transport): + + def get_write_buffer_size(self): + return 2000 + + loop = mock.Mock() + transport = MyTransport(loop=loop) + protocol = mock.Mock() + protocol.pause_writing.side_effect = RuntimeError("boom") + transport._protocol = protocol + transport.set_write_buffer_limits(high=1000, low=100) + transport._maybe_pause_protocol() + protocol.pause_writing.assert_called_once() + loop.call_exception_handler.assert_called_once() + args = loop.call_exception_handler.call_args[0][0] + + self.assertIn("protocol.pause_writing() failed", args["message"]) + self.assertIsInstance(args["exception"], RuntimeError) + self.assertTrue(transport._protocol_paused) + def test_flowcontrol_mixin_compute_write_limits(self): class MyTransport(transports._FlowControlMixin,