From 07f89628d55f07d1305ce2fb5e65e7454b3f4ceb Mon Sep 17 00:00:00 2001 From: Yujong Lee Date: Tue, 8 Sep 2026 11:05:40 -0700 Subject: [PATCH] test(rust): capture deferred stream callback gap --- .../test_messages_callbacks.py | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/test_litellm_rust/test_messages_callbacks.py b/tests/test_litellm_rust/test_messages_callbacks.py index 224b9a22b7c..fd2eae2ab92 100644 --- a/tests/test_litellm_rust/test_messages_callbacks.py +++ b/tests/test_litellm_rust/test_messages_callbacks.py @@ -143,6 +143,28 @@ async def test_messages_callbacks_run_once(messages_server: RecordingServer) -> assert "async_log_failure_event" not in recorder.names +@pytest.mark.asyncio +@pytest.mark.xfail( + reason="Buffered Rust Messages defers success callbacks until the client consumes or closes the fake stream", + strict=True, +) +async def test_messages_buffered_stream_callbacks_settle_before_client_consumption( + messages_server: RecordingServer, +) -> None: + recorder: Final = RecordingLogger() + + stream: Final = await call_messages(messages_server, [recorder], stream=True) + await drain_logging() + callbacks_before_close: Final = recorder.names.count("async_log_success_event") + + await stream.aclose() + await drain_logging() + callbacks_after_close: Final = recorder.names.count("async_log_success_event") + + assert callbacks_before_close == 1 + assert callbacks_after_close == 1 + + @pytest.mark.asyncio async def test_messages_logging_drain_waits_for_suspended_callback(messages_server: RecordingServer) -> None: started: Final = asyncio.Event()