mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-18 04:44:37 +00:00
test(translation): recapture azure ai claude bases after usage speed field (#47117)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
parent
b578dcf278
commit
0c3087eb20
6 changed files with 119 additions and 47 deletions
|
|
@ -43,7 +43,7 @@ CLAUDE_HAIKU_4_5_TEST_CASE: Final = TranslationTestCase(
|
|||
},
|
||||
mock_provider_response={
|
||||
"model": "claude-haiku-4-5-20251001",
|
||||
"id": "msg_011Cfjax6mBrNVhFGQopmVCp",
|
||||
"id": "msg_011Cg7uyAiPY51HN4rSYzQW5",
|
||||
"type": "message",
|
||||
"role": "assistant",
|
||||
"content": [{"type": "text", "text": "Hello."}],
|
||||
|
|
@ -59,6 +59,7 @@ CLAUDE_HAIKU_4_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens": 5,
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "not_available",
|
||||
"speed": "standard",
|
||||
},
|
||||
"diagnostics": None,
|
||||
},
|
||||
|
|
@ -94,6 +95,7 @@ CLAUDE_HAIKU_4_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"cache_read_input_tokens": 0,
|
||||
"inference_geo": "not_available",
|
||||
"service_tier": "standard",
|
||||
"speed": "standard",
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
@ -144,6 +146,7 @@ CLAUDE_FABLE_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens_details": {"thinking_tokens": 0},
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "not_available",
|
||||
"speed": "standard",
|
||||
},
|
||||
"diagnostics": None,
|
||||
},
|
||||
|
|
@ -193,6 +196,7 @@ CLAUDE_FABLE_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"cache_read_input_tokens": 0,
|
||||
"inference_geo": "not_available",
|
||||
"service_tier": "standard",
|
||||
"speed": "standard",
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
@ -224,10 +228,10 @@ CLAUDE_SONNET_4_6_TEST_CASE: Final = TranslationTestCase(
|
|||
},
|
||||
mock_provider_response={
|
||||
"model": "claude-sonnet-4-6",
|
||||
"id": "msg_011CfjaxGKedCbjtb7HuAUBC",
|
||||
"id": "msg_011Cg7uzQ1rtYRwCd9aeTyoF",
|
||||
"type": "message",
|
||||
"role": "assistant",
|
||||
"content": [{"type": "text", "text": "Hello!"}],
|
||||
"content": [{"type": "text", "text": "Hello! How can I help you?"}],
|
||||
"container": None,
|
||||
"stop_reason": "end_turn",
|
||||
"stop_sequence": None,
|
||||
|
|
@ -237,9 +241,10 @@ CLAUDE_SONNET_4_6_TEST_CASE: Final = TranslationTestCase(
|
|||
"cache_creation_input_tokens": 0,
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0},
|
||||
"output_tokens": 5,
|
||||
"output_tokens": 11,
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "not_available",
|
||||
"speed": "standard",
|
||||
},
|
||||
"diagnostics": None,
|
||||
},
|
||||
|
|
@ -253,17 +258,17 @@ CLAUDE_SONNET_4_6_TEST_CASE: Final = TranslationTestCase(
|
|||
"finish_reason": "stop",
|
||||
"index": 0,
|
||||
"message": {
|
||||
"content": "Hello!",
|
||||
"content": "Hello! How can I help you?",
|
||||
"role": "assistant",
|
||||
"provider_specific_fields": {"citations": None, "thinking_blocks": None},
|
||||
},
|
||||
}
|
||||
],
|
||||
"usage": {
|
||||
"completion_tokens": 5,
|
||||
"completion_tokens": 11,
|
||||
"prompt_tokens": 18,
|
||||
"total_tokens": 23,
|
||||
"completion_tokens_details": {"reasoning_tokens": 0, "text_tokens": 5},
|
||||
"total_tokens": 29,
|
||||
"completion_tokens_details": {"reasoning_tokens": 0, "text_tokens": 11},
|
||||
"prompt_tokens_details": {
|
||||
"cached_tokens": 0,
|
||||
"text_tokens": 18,
|
||||
|
|
@ -275,6 +280,7 @@ CLAUDE_SONNET_4_6_TEST_CASE: Final = TranslationTestCase(
|
|||
"cache_read_input_tokens": 0,
|
||||
"inference_geo": "not_available",
|
||||
"service_tier": "standard",
|
||||
"speed": "standard",
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
@ -389,7 +395,7 @@ CLAUDE_OPUS_4_8_TEST_CASE: Final = TranslationTestCase(
|
|||
},
|
||||
mock_provider_response={
|
||||
"model": "claude-opus-4-8",
|
||||
"id": "msg_011CfjaxUiYCUsqMC4iqfc2U",
|
||||
"id": "msg_011Cg7uyf9RNvQWkpJobt6JU",
|
||||
"type": "message",
|
||||
"role": "assistant",
|
||||
"content": [{"type": "text", "text": "Hello."}],
|
||||
|
|
@ -406,6 +412,7 @@ CLAUDE_OPUS_4_8_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens_details": {"thinking_tokens": 0},
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "global",
|
||||
"speed": "standard",
|
||||
},
|
||||
"diagnostics": None,
|
||||
},
|
||||
|
|
@ -441,6 +448,7 @@ CLAUDE_OPUS_4_8_TEST_CASE: Final = TranslationTestCase(
|
|||
"cache_read_input_tokens": 0,
|
||||
"inference_geo": "global",
|
||||
"service_tier": "standard",
|
||||
"speed": "standard",
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
@ -674,6 +682,7 @@ CLAUDE_HAIKU_5_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens_details": {"thinking_tokens": 167},
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "global",
|
||||
"speed": "standard",
|
||||
},
|
||||
},
|
||||
expected_litellm_response={
|
||||
|
|
@ -697,7 +706,7 @@ CLAUDE_HAIKU_5_5_TEST_CASE: Final = TranslationTestCase(
|
|||
},
|
||||
"id": "toolu_01M68cqREYA4WqXBUK8rqcEq",
|
||||
"type": "function",
|
||||
},
|
||||
}
|
||||
],
|
||||
"reasoning_content": "I need to read shop/validation.py next, keeping in mind edge cases like zero, "
|
||||
"negative, or non-integer quantities since the validation logic likely handles those. "
|
||||
|
|
@ -709,7 +718,7 @@ CLAUDE_HAIKU_5_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"negative, or non-integer quantities since the validation logic likely handles those. "
|
||||
"I'll look at the function starting around line 18 to understand its scope.\n\n",
|
||||
"signature": CLAUDE_HAIKU_5_5_THINKING_SIGNATURE_0,
|
||||
},
|
||||
}
|
||||
],
|
||||
"provider_specific_fields": {
|
||||
"citations": None,
|
||||
|
|
@ -720,11 +729,11 @@ CLAUDE_HAIKU_5_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"negative, or non-integer quantities since the validation logic likely handles those. "
|
||||
"I'll look at the function starting around line 18 to understand its scope.\n\n",
|
||||
"signature": CLAUDE_HAIKU_5_5_THINKING_SIGNATURE_0,
|
||||
},
|
||||
}
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
],
|
||||
"usage": {
|
||||
"completion_tokens": 324,
|
||||
|
|
@ -742,6 +751,7 @@ CLAUDE_HAIKU_5_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"cache_read_input_tokens": 0,
|
||||
"inference_geo": "global",
|
||||
"service_tier": "standard",
|
||||
"speed": "standard",
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
@ -763,10 +773,7 @@ CLAUDE_FABLE_5_1_TEST_CASE: Final = TranslationTestCase(
|
|||
"model": "claude-fable-5-1",
|
||||
"id": "msg_011Cg37NcfzdXibtC3dWhVWi",
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "I'll read the validation code and the test together since they are independent.",
|
||||
},
|
||||
{"type": "text", "text": "I'll read the validation code and the test together since they are independent."},
|
||||
{
|
||||
"type": "tool_use",
|
||||
"id": "toolu_01LxkeKf9WX9BVpiWrvfKUyc",
|
||||
|
|
@ -791,6 +798,7 @@ CLAUDE_FABLE_5_1_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens_details": {"thinking_tokens": 0},
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "not_available",
|
||||
"speed": "standard",
|
||||
},
|
||||
},
|
||||
expected_litellm_response={
|
||||
|
|
@ -827,7 +835,7 @@ CLAUDE_FABLE_5_1_TEST_CASE: Final = TranslationTestCase(
|
|||
],
|
||||
"provider_specific_fields": {"citations": None, "thinking_blocks": None},
|
||||
},
|
||||
},
|
||||
}
|
||||
],
|
||||
"usage": {
|
||||
"completion_tokens": 216,
|
||||
|
|
@ -845,6 +853,7 @@ CLAUDE_FABLE_5_1_TEST_CASE: Final = TranslationTestCase(
|
|||
"cache_read_input_tokens": 0,
|
||||
"inference_geo": "not_available",
|
||||
"service_tier": "standard",
|
||||
"speed": "standard",
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
|
|||
|
|
@ -2,10 +2,7 @@ from dataclasses import replace
|
|||
from typing import Final
|
||||
|
||||
from integration._support.client import list_value, object_value
|
||||
from integration.translation.case import (
|
||||
SSEFrame,
|
||||
StreamingTranslationTestCase,
|
||||
)
|
||||
from integration.translation.case import SSEFrame, StreamingTranslationTestCase
|
||||
from integration.translation.chat_completions.cross_model.contracts import followup_request
|
||||
from integration.translation.chat_completions.bases.azure_ai import (
|
||||
CLAUDE_FABLE_5_1_TEST_CASE,
|
||||
|
|
@ -18,9 +15,41 @@ from integration.translation.chat_completions.templates import (
|
|||
coding_agent_stream_message,
|
||||
CODING_AGENT_RESPONSE,
|
||||
)
|
||||
from integration.translation.templates.anthropic import (
|
||||
ANTHROPIC_AGENT_REQUEST,
|
||||
ANTHROPIC_AGENT_RESPONSE,
|
||||
from integration.translation.templates.anthropic import ANTHROPIC_AGENT_REQUEST, ANTHROPIC_AGENT_RESPONSE
|
||||
|
||||
CLAUDE_FABLE_5_CROSS_MODEL_TEST_CASE: Final = replace(
|
||||
CLAUDE_FABLE_5_TEST_CASE,
|
||||
mock_provider_response={
|
||||
**CLAUDE_FABLE_5_TEST_CASE.mock_provider_response,
|
||||
"usage": {
|
||||
**object_value(ANTHROPIC_AGENT_RESPONSE["usage"]),
|
||||
"input_tokens": 1184,
|
||||
"output_tokens": 105,
|
||||
"output_tokens_details": {"thinking_tokens": 0},
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "not_available",
|
||||
},
|
||||
},
|
||||
expected_litellm_response={
|
||||
**CLAUDE_FABLE_5_TEST_CASE.expected_litellm_response,
|
||||
"usage": {
|
||||
"completion_tokens": 105,
|
||||
"prompt_tokens": 1184,
|
||||
"total_tokens": 1289,
|
||||
"completion_tokens_details": {"reasoning_tokens": 0, "text_tokens": 105},
|
||||
"prompt_tokens_details": {
|
||||
"cached_tokens": 0,
|
||||
"text_tokens": 1184,
|
||||
"cache_write_tokens": 0,
|
||||
"cache_creation_tokens": 0,
|
||||
"cache_creation_token_details": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0},
|
||||
},
|
||||
"cache_creation_input_tokens": 0,
|
||||
"cache_read_input_tokens": 0,
|
||||
"inference_geo": "not_available",
|
||||
"service_tier": "standard",
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
CLAUDE_FABLE_5_1_AGENT_TEST_CASE: Final = replace(
|
||||
|
|
@ -349,7 +378,7 @@ CLAUDE_FABLE_5_1_AGENT_STREAMING_TEST_CASE: Final = StreamingTranslationTestCase
|
|||
SSEFrame(data={"type": "message_stop"}, event="message_stop"),
|
||||
),
|
||||
expected_litellm_message=coding_agent_stream_message(
|
||||
("toolu_01PfMSQLj6cQzebc2vGbdsV8", "toolu_01SVc4RwmEaMiDK33hUEbTZW"),
|
||||
("toolu_01PfMSQLj6cQzebc2vGbdsV8", "toolu_01SVc4RwmEaMiDK33hUEbTZW")
|
||||
),
|
||||
expected_litellm_usage={
|
||||
"prompt_tokens": 1184,
|
||||
|
|
@ -593,7 +622,7 @@ CLAUDE_FABLE_5_AGENT_STREAMING_TEST_CASE: Final = StreamingTranslationTestCase(
|
|||
SSEFrame(data={"type": "message_stop"}, event="message_stop"),
|
||||
),
|
||||
expected_litellm_message=coding_agent_stream_message(
|
||||
("toolu_01DprHn2GeJDAWFEyTqBzy2Z", "toolu_016kava9hqtKw71W4vBEedfW"),
|
||||
("toolu_01DprHn2GeJDAWFEyTqBzy2Z", "toolu_016kava9hqtKw71W4vBEedfW")
|
||||
),
|
||||
expected_litellm_usage={
|
||||
"prompt_tokens": 1184,
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ HIGH: Final[tuple[AgentCases, ...]] = (
|
|||
azure_ai.CLAUDE_FABLE_5_1_AGENT_STREAMING_TEST_CASE,
|
||||
),
|
||||
(
|
||||
azure_ai.CLAUDE_FABLE_5_TEST_CASE,
|
||||
azure_ai.CLAUDE_FABLE_5_CROSS_MODEL_TEST_CASE,
|
||||
azure_ai.CLAUDE_FABLE_5_AGENT_FOLLOWUP_TEST_CASE,
|
||||
azure_ai.CLAUDE_FABLE_5_AGENT_STREAMING_TEST_CASE,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
from collections.abc import Mapping
|
||||
from typing import Final
|
||||
|
||||
from integration._support.client import object_value
|
||||
from integration.translation.case import TranslationTestCase
|
||||
from integration.translation.messages.templates import MESSAGES_REQUEST, MESSAGES_RESPONSE
|
||||
from integration.translation.templates.anthropic import ANTHROPIC_MESSAGES_REQUEST, ANTHROPIC_MESSAGES_RESPONSE
|
||||
|
|
@ -31,10 +32,10 @@ CLAUDE_HAIKU_4_5_TEST_CASE: Final = TranslationTestCase(
|
|||
},
|
||||
mock_provider_response={
|
||||
"model": "claude-haiku-4-5-20251001",
|
||||
"id": "msg_011Cfjax2zxeHkddgerkEGRY",
|
||||
"id": "msg_011Cg7vB62SdiZVj3M7xJXpr",
|
||||
"type": "message",
|
||||
"role": "assistant",
|
||||
"content": [{"type": "text", "text": "Hello."}],
|
||||
"content": [{"type": "text", "text": "Hello!"}],
|
||||
"container": None,
|
||||
"stop_reason": "end_turn",
|
||||
"stop_sequence": None,
|
||||
|
|
@ -47,15 +48,16 @@ CLAUDE_HAIKU_4_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens": 5,
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "not_available",
|
||||
"speed": "standard",
|
||||
},
|
||||
"diagnostics": None,
|
||||
},
|
||||
expected_litellm_response={
|
||||
"model": "azure_ai/claude-haiku-4-5",
|
||||
"id": "msg_011Cfjax2zxeHkddgerkEGRY",
|
||||
"id": "msg_011Cg7vB62SdiZVj3M7xJXpr",
|
||||
"type": "message",
|
||||
"role": "assistant",
|
||||
"content": [{"type": "text", "text": "Hello."}],
|
||||
"content": [{"type": "text", "text": "Hello!"}],
|
||||
"container": None,
|
||||
"stop_reason": "end_turn",
|
||||
"stop_sequence": None,
|
||||
|
|
@ -68,6 +70,7 @@ CLAUDE_HAIKU_4_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens": 5,
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "not_available",
|
||||
"speed": "standard",
|
||||
},
|
||||
"diagnostics": None,
|
||||
},
|
||||
|
|
@ -98,7 +101,7 @@ CLAUDE_SONNET_4_6_TEST_CASE: Final = TranslationTestCase(
|
|||
},
|
||||
mock_provider_response={
|
||||
"model": "claude-sonnet-4-6",
|
||||
"id": "msg_011CfjaxAknNm3ZLkVxQRj8M",
|
||||
"id": "msg_011Cg7vCCFGaPEhwGwoS6VPy",
|
||||
"type": "message",
|
||||
"role": "assistant",
|
||||
"content": [{"type": "text", "text": "Hello!"}],
|
||||
|
|
@ -114,12 +117,13 @@ CLAUDE_SONNET_4_6_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens": 5,
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "not_available",
|
||||
"speed": "standard",
|
||||
},
|
||||
"diagnostics": None,
|
||||
},
|
||||
expected_litellm_response={
|
||||
"model": "azure_ai/claude-sonnet-4-6",
|
||||
"id": "msg_011CfjaxAknNm3ZLkVxQRj8M",
|
||||
"id": "msg_011Cg7vCCFGaPEhwGwoS6VPy",
|
||||
"type": "message",
|
||||
"role": "assistant",
|
||||
"content": [{"type": "text", "text": "Hello!"}],
|
||||
|
|
@ -135,6 +139,7 @@ CLAUDE_SONNET_4_6_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens": 5,
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "not_available",
|
||||
"speed": "standard",
|
||||
},
|
||||
"diagnostics": None,
|
||||
},
|
||||
|
|
@ -234,7 +239,7 @@ CLAUDE_OPUS_4_8_TEST_CASE: Final = TranslationTestCase(
|
|||
},
|
||||
mock_provider_response={
|
||||
"model": "claude-opus-4-8",
|
||||
"id": "msg_011CfjaxPE8FBKSJ9KbtQzDE",
|
||||
"id": "msg_011Cg7vBVpRK6kd1kkYXJXyb",
|
||||
"type": "message",
|
||||
"role": "assistant",
|
||||
"content": [{"type": "text", "text": "Hello."}],
|
||||
|
|
@ -251,12 +256,13 @@ CLAUDE_OPUS_4_8_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens_details": {"thinking_tokens": 0},
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "global",
|
||||
"speed": "standard",
|
||||
},
|
||||
"diagnostics": None,
|
||||
},
|
||||
expected_litellm_response={
|
||||
"model": "azure_ai/claude-opus-4-8",
|
||||
"id": "msg_011CfjaxPE8FBKSJ9KbtQzDE",
|
||||
"id": "msg_011Cg7vBVpRK6kd1kkYXJXyb",
|
||||
"type": "message",
|
||||
"role": "assistant",
|
||||
"content": [{"type": "text", "text": "Hello."}],
|
||||
|
|
@ -273,6 +279,7 @@ CLAUDE_OPUS_4_8_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens_details": {"thinking_tokens": 0},
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "global",
|
||||
"speed": "standard",
|
||||
},
|
||||
"diagnostics": None,
|
||||
},
|
||||
|
|
@ -483,11 +490,13 @@ CLAUDE_HAIKU_5_5_TEST_CASE: Final = TranslationTestCase(
|
|||
**ANTHROPIC_MESSAGES_RESPONSE,
|
||||
**CLAUDE_HAIKU_5_5_RESPONSE_FIELDS,
|
||||
"model": "claude-haiku-5-5",
|
||||
"usage": {**object_value(CLAUDE_HAIKU_5_5_RESPONSE_FIELDS["usage"]), "speed": "standard"},
|
||||
},
|
||||
expected_litellm_response={
|
||||
**MESSAGES_RESPONSE,
|
||||
**CLAUDE_HAIKU_5_5_RESPONSE_FIELDS,
|
||||
"model": "azure_ai/claude-haiku-5-5",
|
||||
"usage": {**object_value(CLAUDE_HAIKU_5_5_RESPONSE_FIELDS["usage"]), "speed": "standard"},
|
||||
},
|
||||
)
|
||||
|
||||
|
|
@ -541,10 +550,12 @@ CLAUDE_FABLE_5_1_TEST_CASE: Final = TranslationTestCase(
|
|||
**ANTHROPIC_MESSAGES_RESPONSE,
|
||||
**CLAUDE_FABLE_5_1_RESPONSE_FIELDS,
|
||||
"model": "claude-fable-5-1",
|
||||
"usage": {**object_value(CLAUDE_FABLE_5_1_RESPONSE_FIELDS["usage"]), "speed": "standard"},
|
||||
},
|
||||
expected_litellm_response={
|
||||
**MESSAGES_RESPONSE,
|
||||
**CLAUDE_FABLE_5_1_RESPONSE_FIELDS,
|
||||
"model": "azure_ai/claude-fable-5-1",
|
||||
"usage": {**object_value(CLAUDE_FABLE_5_1_RESPONSE_FIELDS["usage"]), "speed": "standard"},
|
||||
},
|
||||
)
|
||||
|
|
|
|||
|
|
@ -8,6 +8,19 @@ from integration.translation.case import TranslationTestCase
|
|||
from integration.translation.messages.bases.azure_ai import CLAUDE_SONNET_4_6_TEST_CASE
|
||||
from integration.translation.runner import assert_translation
|
||||
|
||||
CLAUDE_SONNET_4_6_SERVICE_TIER_RESPONSE_FIELDS: Final = {
|
||||
"content": [{"type": "text", "text": "Hello!"}],
|
||||
"usage": {
|
||||
"input_tokens": 18,
|
||||
"cache_creation_input_tokens": 0,
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0},
|
||||
"output_tokens": 5,
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "not_available",
|
||||
},
|
||||
}
|
||||
|
||||
CLAUDE_SONNET_4_6_SERVICE_TIER_TEST_CASE: Final = replace(
|
||||
CLAUDE_SONNET_4_6_TEST_CASE,
|
||||
scenario="service_tier",
|
||||
|
|
@ -16,9 +29,14 @@ CLAUDE_SONNET_4_6_SERVICE_TIER_TEST_CASE: Final = replace(
|
|||
**CLAUDE_SONNET_4_6_TEST_CASE.expected_provider_request,
|
||||
"service_tier": "standard_only",
|
||||
},
|
||||
mock_provider_response={**CLAUDE_SONNET_4_6_TEST_CASE.mock_provider_response, "id": "msg_011Cg1SnrstCdzZPwmTk2qQa"},
|
||||
mock_provider_response={
|
||||
**CLAUDE_SONNET_4_6_TEST_CASE.mock_provider_response,
|
||||
**CLAUDE_SONNET_4_6_SERVICE_TIER_RESPONSE_FIELDS,
|
||||
"id": "msg_011Cg1SnrstCdzZPwmTk2qQa",
|
||||
},
|
||||
expected_litellm_response={
|
||||
**CLAUDE_SONNET_4_6_TEST_CASE.expected_litellm_response,
|
||||
**CLAUDE_SONNET_4_6_SERVICE_TIER_RESPONSE_FIELDS,
|
||||
"id": "msg_011Cg1SnrstCdzZPwmTk2qQa",
|
||||
},
|
||||
)
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ CLAUDE_HAIKU_4_5_TEST_CASE: Final = TranslationTestCase(
|
|||
},
|
||||
mock_provider_response={
|
||||
"model": "claude-haiku-4-5-20251001",
|
||||
"id": "msg_011Cfjax6mBrNVhFGQopmVCp",
|
||||
"id": "msg_011Cg7vB393hLWW1Xxq6d6vm",
|
||||
"type": "message",
|
||||
"role": "assistant",
|
||||
"content": [{"type": "text", "text": "Hello."}],
|
||||
|
|
@ -47,6 +47,7 @@ CLAUDE_HAIKU_4_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens": 5,
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "not_available",
|
||||
"speed": "standard",
|
||||
},
|
||||
"diagnostics": None,
|
||||
},
|
||||
|
|
@ -127,7 +128,7 @@ CLAUDE_SONNET_4_6_TEST_CASE: Final = TranslationTestCase(
|
|||
},
|
||||
mock_provider_response={
|
||||
"model": "claude-sonnet-4-6",
|
||||
"id": "msg_011CfjaxGKedCbjtb7HuAUBC",
|
||||
"id": "msg_011Cg7vCAx8gxwjwBr2R1kxz",
|
||||
"type": "message",
|
||||
"role": "assistant",
|
||||
"content": [{"type": "text", "text": "Hello!"}],
|
||||
|
|
@ -143,6 +144,7 @@ CLAUDE_SONNET_4_6_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens": 5,
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "not_available",
|
||||
"speed": "standard",
|
||||
},
|
||||
"diagnostics": None,
|
||||
},
|
||||
|
|
@ -320,7 +322,7 @@ CLAUDE_OPUS_4_8_TEST_CASE: Final = TranslationTestCase(
|
|||
},
|
||||
mock_provider_response={
|
||||
"model": "claude-opus-4-8",
|
||||
"id": "msg_011CfjaxUiYCUsqMC4iqfc2U",
|
||||
"id": "msg_011Cg7vBUGeH2HFZFTDxVdBh",
|
||||
"type": "message",
|
||||
"role": "assistant",
|
||||
"content": [{"type": "text", "text": "Hello."}],
|
||||
|
|
@ -337,6 +339,7 @@ CLAUDE_OPUS_4_8_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens_details": {"thinking_tokens": 0},
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "global",
|
||||
"speed": "standard",
|
||||
},
|
||||
"diagnostics": None,
|
||||
},
|
||||
|
|
@ -620,7 +623,7 @@ CLAUDE_HAIKU_5_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"suggesting a fix. Explain which file you need next, then call a read-only tool. "
|
||||
"Never change files. Use the responses client for this project review. Consider zero, "
|
||||
"negative and non-integer quantities before choosing the next file to inspect.",
|
||||
},
|
||||
}
|
||||
],
|
||||
},
|
||||
mock_provider_response={
|
||||
|
|
@ -656,6 +659,7 @@ CLAUDE_HAIKU_5_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens_details": {"thinking_tokens": 73},
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "global",
|
||||
"speed": "standard",
|
||||
},
|
||||
},
|
||||
expected_litellm_response={
|
||||
|
|
@ -673,7 +677,7 @@ CLAUDE_HAIKU_5_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"text": "I need to look at shop/validation.py to understand its contents, so I'll read "
|
||||
"through the first chunk of the file.\n\n",
|
||||
"annotations": [],
|
||||
},
|
||||
}
|
||||
],
|
||||
"phase": None,
|
||||
"encrypted_content": json.dumps(
|
||||
|
|
@ -683,7 +687,7 @@ CLAUDE_HAIKU_5_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"thinking": "I need to look at shop/validation.py to understand its contents, so I'll read "
|
||||
"through the first chunk of the file.\n\n",
|
||||
"signature": CLAUDE_HAIKU_5_5_THINKING_SIGNATURE_0,
|
||||
},
|
||||
}
|
||||
],
|
||||
separators=(",", ":"),
|
||||
),
|
||||
|
|
@ -699,7 +703,7 @@ CLAUDE_HAIKU_5_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"text": "I'll read `shop/validation.py`, starting with the `validate_quantity` function found "
|
||||
"in the search.",
|
||||
"annotations": [],
|
||||
},
|
||||
}
|
||||
],
|
||||
"phase": None,
|
||||
},
|
||||
|
|
@ -737,7 +741,7 @@ CLAUDE_HAIKU_5_5_TEST_CASE: Final = TranslationTestCase(
|
|||
"thinking": "I need to look at shop/validation.py to understand its contents, so I'll read "
|
||||
"through the first chunk of the file.\n\n",
|
||||
"signature": CLAUDE_HAIKU_5_5_THINKING_SIGNATURE_0,
|
||||
},
|
||||
}
|
||||
],
|
||||
},
|
||||
},
|
||||
|
|
@ -764,7 +768,7 @@ CLAUDE_FABLE_5_1_TEST_CASE: Final = TranslationTestCase(
|
|||
"suggesting a fix. Explain which file you need next, then call a read-only tool. "
|
||||
"Never change files. Use the responses client for this project review. Consider zero, "
|
||||
"negative and non-integer quantities before choosing the next file to inspect.",
|
||||
},
|
||||
}
|
||||
],
|
||||
},
|
||||
mock_provider_response={
|
||||
|
|
@ -801,6 +805,7 @@ CLAUDE_FABLE_5_1_TEST_CASE: Final = TranslationTestCase(
|
|||
"output_tokens_details": {"thinking_tokens": 0},
|
||||
"service_tier": "standard",
|
||||
"inference_geo": "not_available",
|
||||
"speed": "standard",
|
||||
},
|
||||
},
|
||||
expected_litellm_response={
|
||||
|
|
@ -818,7 +823,7 @@ CLAUDE_FABLE_5_1_TEST_CASE: Final = TranslationTestCase(
|
|||
"text": "I'll read the validation function; reading the test file at the same time is "
|
||||
"independent of it, so I'll fetch both now.",
|
||||
"annotations": [],
|
||||
},
|
||||
}
|
||||
],
|
||||
"phase": None,
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue