fix: keep Jupyter channel readers alive

This commit is contained in:
lda
2026-08-30 21:43:51 +07:00 Verified
parent b48443cdc3
commit e2958ea91a
2 changed files with 116 additions and 49 deletions
+20
View File
@@ -23,6 +23,26 @@ class TransportTests(unittest.TestCase):
class AsyncTransportTests(unittest.IsolatedAsyncioTestCase):
async def test_transport_keeps_channel_readers_alive_during_a_call(self):
transport = JupyterTransport()
await transport.start()
try:
readers = set(transport._reader_tasks)
call_id = await transport.execute("2 + 2")
messages = [
message async for message in transport.messages_for(call_id)
]
self.assertEqual(len(readers), 3)
self.assertEqual(transport._reader_tasks, readers)
self.assertTrue(all(not reader.done() for reader in readers))
finally:
await transport.shutdown()
self.assertTrue(
any(message.msg_type == "execute_result" for message in messages)
)
async def test_transport_executes_and_returns_execute_reply(self):
transport = JupyterTransport()
await transport.start()