From 9cabde90dd3e6d1101c6d89487d0a8e683b4df2f Mon Sep 17 00:00:00 2001 From: yassin Date: Wed, 16 Sep 2026 03:48:32 +0000 Subject: [PATCH] test(router): cover _run_silent_experiment directly for router coverage gate Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .../test_router_silent_experiment.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/test_litellm/test_router_silent_experiment.py b/tests/test_litellm/test_router_silent_experiment.py index eed688a79dd..79ce18e40b8 100644 --- a/tests/test_litellm/test_router_silent_experiment.py +++ b/tests/test_litellm/test_router_silent_experiment.py @@ -311,6 +311,25 @@ async def test_silent_experiment_acompletion_direct(): ) +@pytest.mark.asyncio +async def test_run_silent_experiment_drains_stream_so_callbacks_fire(recording_logger): + router = Router(model_list=_streaming_model_list(None)) + silent_kwargs: Final = { + "stream": True, + "stream_options": {"include_usage": True}, + "mock_response": "pong", + "metadata": {"is_silent_experiment": True, "model_group": "shadow-b"}, + } + await router._run_silent_experiment("shadow-b", [{"role": "user", "content": "hi"}], silent_kwargs) + await _wait_for_shadow_successes(recording_logger, expected=1) + + shadow_successes = recording_logger.shadow_successes() + assert len(shadow_successes) == 1 + assert shadow_successes[0]["stream"] is True + assert shadow_successes[0]["async_complete_streaming_response"] is not None + assert silent_kwargs["stream"] is True + + @pytest.mark.asyncio async def test_router_silent_experiment_acompletion(): """