[CI][Frontend] Return 422 instead of 500 for invalid Anthropic tool_choice (#34590)

Signed-off-by: Andreas Karatzas <akaratza@amd.com>
This commit is contained in:
Andreas Karatzas
2026-02-15 22:06:48 -06:00
committed by GitHub
parent 91ac5d9bfd
commit 974d829b05
2 changed files with 8 additions and 1 deletions

View File

@@ -151,6 +151,7 @@ def test_openapi_stateless(case: schemathesis.Case):
# requires a longer timeout
("POST", "/v1/chat/completions"): LONG_TIMEOUT_SECONDS,
("POST", "/v1/completions"): LONG_TIMEOUT_SECONDS,
("POST", "/v1/messages"): LONG_TIMEOUT_SECONDS,
}.get(key, DEFAULT_TIMEOUT_SECONDS)
# No need to verify SSL certificate for localhost

View File

@@ -5,7 +5,7 @@
import time
from typing import Any, Literal
from pydantic import BaseModel, field_validator
from pydantic import BaseModel, field_validator, model_validator
class AnthropicError(BaseModel):
@@ -76,6 +76,12 @@ class AnthropicToolChoice(BaseModel):
type: Literal["auto", "any", "tool"]
name: str | None = None
@model_validator(mode="after")
def validate_name_required_for_tool(self) -> "AnthropicToolChoice":
if self.type == "tool" and not self.name:
raise ValueError("tool_choice.name is required when type is 'tool'")
return self
class AnthropicMessagesRequest(BaseModel):
"""Anthropic Messages API request"""