Merge pull request #23651 from BerriAI/litellm_fix_ci_failures_03_14

[Fix] CI failures: mypy type error, ruff lint, and flaky router test
This commit is contained in:
yuneng-jiang 2026-03-14 12:47:30 -07:00 committed by GitHub
commit e76c1f2fde
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 17 additions and 7 deletions

View file

@ -6,7 +6,7 @@ import csv
import io
from typing import Any, Optional
import httpx
import httpx # noqa: F401 - used at runtime (AsyncClient, HTTPStatusError)
from litellm._logging import verbose_logger
from litellm.llms.custom_httpx.http_handler import (

View file

@ -9,7 +9,7 @@ https://platform.openai.com/docs/api-reference/responses-streaming
"""
import asyncio
import json
from typing import Any
from typing import Any, Optional, cast
from fastapi import Request, Response
@ -17,6 +17,7 @@ from litellm._logging import verbose_proxy_logger
from litellm.proxy.auth.user_api_key_auth import UserAPIKeyAuth
from litellm.proxy.common_request_processing import ProxyBaseLLMRequestProcessing
from litellm.proxy.response_polling.polling_handler import ResponsePollingHandler
from litellm.types.llms.openai import ResponsesAPIStatus
async def background_streaming_task( # noqa: PLR0915
@ -114,7 +115,7 @@ async def background_streaming_task( # noqa: PLR0915
UPDATE_INTERVAL = 0.150 # 150ms batching interval
# Track the terminal event from the stream (may not be "completed")
terminal_status = None # Will be set by response.completed/failed/incomplete/cancelled
terminal_status: Optional[ResponsesAPIStatus] = None # Will be set by response.completed/failed/incomplete/cancelled
terminal_error = None
_event_to_status = {
"response.completed": "completed",
@ -249,9 +250,12 @@ async def background_streaming_task( # noqa: PLR0915
# Terminal event - extract all ResponsesAPIResponse fields
# https://platform.openai.com/docs/api-reference/responses-streaming
response_data = event.get("response", {})
terminal_status = response_data.get(
"status",
_event_to_status.get(event_type, "completed"),
terminal_status = cast(
ResponsesAPIStatus,
response_data.get(
"status",
_event_to_status.get(event_type, "completed"),
),
)
# Extract error for failed responses

View file

@ -643,7 +643,13 @@ def test_arouter_responses_api_bridge():
## CONFIRM MODEL NAME IS STRIPPED
client = HTTPHandler()
with patch.object(client, "post", return_value=MagicMock()) as mock_post:
mock_response = MagicMock()
mock_response.status_code = 200
mock_response.headers = {"content-type": "application/json"}
mock_response.json.return_value = {"id": "resp_test", "object": "response", "status": "completed", "output": []}
mock_response.text = '{"id": "resp_test", "object": "response", "status": "completed", "output": []}'
with patch.object(client, "post", return_value=mock_response) as mock_post:
try:
result = router.completion(
model="[IP-approved] o3-pro",