From 06a43d11c4810955f2319a243f3ab88dcfbebbae Mon Sep 17 00:00:00 2001 From: Mateo Wang <277851410+mateo-berri@users.noreply.github.com> Date: Tue, 7 Jul 2026 21:58:14 -0700 Subject: [PATCH] test(responses): bound azure shell tool live call at 90s and skip on provider timeout (#32424) * ci(responses): bound azure shell tool e2e call and enforce per-test timeout The azure variant of test_responses_api_shell_tool always makes a live Azure call (its skip outcome means no VCR cassette is ever persisted). When Azure held the connection instead of answering, the call sat on litellm's 6000s responses deadline until CircleCI killed the whole job via no_output_timeout after 15m of silence (job 2013288). Bound the e2e call at 90s and skip on litellm.Timeout, matching the existing InternalServerError and BadRequestError skips, and give the llm_responses_api_testing job the same pytest-timeout guard the llm_translation_testing job already uses so no single hung test can consume the 15m no-output window again. * test(responses): drop job-level pytest timeout, keep shell tool 90s bound --- tests/llm_responses_api_testing/base_responses_api.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/llm_responses_api_testing/base_responses_api.py b/tests/llm_responses_api_testing/base_responses_api.py index 30f444b9acc..7d2e30f8372 100644 --- a/tests/llm_responses_api_testing/base_responses_api.py +++ b/tests/llm_responses_api_testing/base_responses_api.py @@ -765,7 +765,10 @@ class BaseResponsesAPITest(ABC): max_output_tokens=256, tools=tools, tool_choice="auto", + timeout=90, ) + except litellm.Timeout: + pytest.skip("Provider did not answer the shell tool request within 90s") except litellm.InternalServerError: pytest.skip("Skipping test due to litellm.InternalServerError") except litellm.BadRequestError as e: