mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-24 00:52:24 +00:00
Merge pull request #42109 from BerriAI/litellm_migrate_tests_p5
test(llms): migrate phase 5 provider unit tests to tests/unit
This commit is contained in:
commit
bfc805b372
21 changed files with 124 additions and 182 deletions
|
|
@ -1,158 +0,0 @@
|
|||
import json
|
||||
import os
|
||||
from unittest.mock import Mock, patch
|
||||
import pytest
|
||||
|
||||
|
||||
import litellm
|
||||
from litellm.llms.custom_httpx.http_handler import HTTPHandler, AsyncHTTPHandler
|
||||
|
||||
# Mock response for Bedrock image generation
|
||||
mock_image_response = {"images": ["base64_encoded_image_data"], "error": None}
|
||||
|
||||
|
||||
class TestBedrockImageGeneration:
|
||||
def test_image_generation_with_api_key_bearer_token(self):
|
||||
"""Test image generation with bearer token authentication"""
|
||||
test_api_key = "test-bearer-token-12345"
|
||||
model = "bedrock/stability.sd3-large-v1:0"
|
||||
prompt = "A cute baby sea otter"
|
||||
|
||||
with patch(
|
||||
"litellm.llms.bedrock.image_generation.image_handler.BedrockImageGeneration.image_generation"
|
||||
) as mock_bedrock_image_gen:
|
||||
# Setup mock response
|
||||
mock_image_response_obj = litellm.ImageResponse()
|
||||
mock_image_response_obj.data = [{"url": "https://example.com/image.jpg"}]
|
||||
mock_bedrock_image_gen.return_value = mock_image_response_obj
|
||||
|
||||
response = litellm.image_generation(
|
||||
model=model,
|
||||
prompt=prompt,
|
||||
aws_region_name="us-west-2",
|
||||
api_key=test_api_key,
|
||||
)
|
||||
|
||||
assert response is not None
|
||||
assert len(response.data) > 0
|
||||
|
||||
mock_bedrock_image_gen.assert_called_once()
|
||||
for call in mock_bedrock_image_gen.call_args_list:
|
||||
if "headers" in call.kwargs:
|
||||
headers = call.kwargs["headers"]
|
||||
if (
|
||||
"Authorization" in headers
|
||||
and headers["Authorization"] == f"Bearer {test_api_key}"
|
||||
):
|
||||
break
|
||||
|
||||
def test_image_generation_with_env_variable_bearer_token(self, monkeypatch):
|
||||
"""Test image generation with bearer token from environment variable"""
|
||||
test_api_key = "env-bearer-token-12345"
|
||||
model = "bedrock/stability.sd3-large-v1:0"
|
||||
prompt = "A cute baby sea otter"
|
||||
|
||||
# Mock the environment variable
|
||||
with (
|
||||
patch.dict(os.environ, {"AWS_BEARER_TOKEN_BEDROCK": test_api_key}),
|
||||
patch(
|
||||
"litellm.llms.bedrock.image_generation.image_handler.BedrockImageGeneration.image_generation"
|
||||
) as mock_bedrock_image_gen,
|
||||
):
|
||||
|
||||
mock_image_response_obj = litellm.ImageResponse()
|
||||
mock_image_response_obj.data = [{"url": "https://example.com/image.jpg"}]
|
||||
mock_bedrock_image_gen.return_value = mock_image_response_obj
|
||||
|
||||
response = litellm.image_generation(
|
||||
model=model, prompt=prompt, aws_region_name="us-west-2"
|
||||
)
|
||||
|
||||
assert response is not None
|
||||
assert len(response.data) > 0
|
||||
|
||||
mock_bedrock_image_gen.assert_called_once()
|
||||
for call in mock_bedrock_image_gen.call_args_list:
|
||||
if "headers" in call.kwargs:
|
||||
headers = call.kwargs["headers"]
|
||||
if (
|
||||
"Authorization" in headers
|
||||
and headers["Authorization"] == f"Bearer {test_api_key}"
|
||||
):
|
||||
break
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_async_image_generation_with_bearer_token(self):
|
||||
"""Test async image generation with bearer token authentication"""
|
||||
test_api_key = "async-bearer-token-12345"
|
||||
model = "bedrock/stability.sd3-large-v1:0"
|
||||
prompt = "A cute baby sea otter"
|
||||
|
||||
with patch(
|
||||
"litellm.llms.bedrock.image_generation.image_handler.BedrockImageGeneration.async_image_generation"
|
||||
) as mock_async_bedrock_image_gen:
|
||||
mock_image_response_obj = litellm.ImageResponse()
|
||||
mock_image_response_obj.data = [{"url": "https://example.com/image.jpg"}]
|
||||
mock_async_bedrock_image_gen.return_value = mock_image_response_obj
|
||||
|
||||
# Call async image generation with api_key parameter
|
||||
response = await litellm.aimage_generation(
|
||||
model=model,
|
||||
prompt=prompt,
|
||||
aws_region_name="us-west-2",
|
||||
api_key=test_api_key,
|
||||
)
|
||||
|
||||
assert response is not None
|
||||
assert len(response.data) > 0
|
||||
|
||||
mock_async_bedrock_image_gen.assert_called_once()
|
||||
for call in mock_async_bedrock_image_gen.call_args_list:
|
||||
if "headers" in call.kwargs:
|
||||
headers = call.kwargs["headers"]
|
||||
if (
|
||||
"Authorization" in headers
|
||||
and headers["Authorization"] == f"Bearer {test_api_key}"
|
||||
):
|
||||
break
|
||||
|
||||
def test_image_generation_with_sigv4(self):
|
||||
"""Test image generation falls back to SigV4 auth when no bearer token is provided"""
|
||||
model = "bedrock/stability.sd3-large-v1:0"
|
||||
prompt = "A cute baby sea otter"
|
||||
|
||||
with patch(
|
||||
"litellm.llms.bedrock.image_generation.image_handler.BedrockImageGeneration.image_generation"
|
||||
) as mock_bedrock_image_gen:
|
||||
mock_image_response_obj = litellm.ImageResponse()
|
||||
mock_image_response_obj.data = [{"url": "https://example.com/image.jpg"}]
|
||||
mock_bedrock_image_gen.return_value = mock_image_response_obj
|
||||
|
||||
response = litellm.image_generation(
|
||||
model=model, prompt=prompt, aws_region_name="us-west-2"
|
||||
)
|
||||
|
||||
assert response is not None
|
||||
assert len(response.data) > 0
|
||||
mock_bedrock_image_gen.assert_called_once()
|
||||
|
||||
|
||||
def test_image_generation_bearer_token_never_runs_the_sigv4_credential_chain(monkeypatch):
|
||||
"""The deployment's AWS profile does not exist, so resolving SigV4 credentials
|
||||
raises; a bearer-token deployment must still sign the request with the
|
||||
bearer token alone."""
|
||||
from litellm.llms.bedrock.image_generation.image_handler import BedrockImageGeneration
|
||||
|
||||
monkeypatch.setenv("AWS_BEARER_TOKEN_BEDROCK", "env-bearer-token-12345")
|
||||
|
||||
request = BedrockImageGeneration()._prepare_request(
|
||||
model="amazon.nova-canvas-v1:0",
|
||||
prompt="A cute baby sea otter",
|
||||
optional_params={"aws_region_name": "us-west-2", "aws_profile_name": "litellm-no-such-aws-profile"},
|
||||
api_base=None,
|
||||
extra_headers=None,
|
||||
api_key=None,
|
||||
logging_obj=Mock(),
|
||||
)
|
||||
|
||||
assert request.prepped.headers["Authorization"] == "Bearer env-bearer-token-12345"
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
from unittest.mock import Mock
|
||||
|
||||
def test_image_generation_bearer_token_never_runs_the_sigv4_credential_chain(monkeypatch):
|
||||
"""The deployment's AWS profile does not exist, so resolving SigV4 credentials
|
||||
raises; a bearer-token deployment must still sign the request with the
|
||||
bearer token alone."""
|
||||
from litellm.llms.bedrock.image_generation.image_handler import BedrockImageGeneration
|
||||
|
||||
monkeypatch.setenv("AWS_BEARER_TOKEN_BEDROCK", "env-bearer-token-12345")
|
||||
|
||||
request = BedrockImageGeneration()._prepare_request(
|
||||
model="amazon.nova-canvas-v1:0",
|
||||
prompt="A cute baby sea otter",
|
||||
optional_params={"aws_region_name": "us-west-2", "aws_profile_name": "litellm-no-such-aws-profile"},
|
||||
api_base=None,
|
||||
extra_headers=None,
|
||||
api_key=None,
|
||||
logging_obj=Mock(),
|
||||
)
|
||||
|
||||
assert request.prepped.headers["Authorization"] == "Bearer env-bearer-token-12345"
|
||||
|
|
@ -11,7 +11,8 @@ def test_bedrock_image_prepare_request_with_arn() -> None:
|
|||
|
||||
with (
|
||||
patch(
|
||||
"litellm.llms.bedrock.image_generation.image_handler.BedrockImageGeneration._get_boto_credentials_from_optional_params"
|
||||
"litellm.llms.bedrock.image_generation.image_handler.BedrockImageGeneration."
|
||||
"_get_boto_credentials_from_optional_params"
|
||||
),
|
||||
patch(
|
||||
"litellm.llms.bedrock.image_generation.image_handler.BedrockImageGeneration.get_request_headers"
|
||||
|
|
@ -31,7 +32,8 @@ def test_bedrock_image_prepare_request_with_arn() -> None:
|
|||
|
||||
assert (
|
||||
request.endpoint_url
|
||||
== "https://bedrock-runtime.test.com/model/arn%3Aaws%3Abedrock%3Aus-east-1%3A123456789012%3Aapplication-inference-profile%2Fabcdefghi123/invoke"
|
||||
== "https://bedrock-runtime.test.com/model/arn%3Aaws%3Abedrock%3Aus-east-1%3A123456789012"
|
||||
"%3Aapplication-inference-profile%2Fabcdefghi123/invoke"
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -41,7 +43,8 @@ def test_bedrock_image_prepare_request_without_arn() -> None:
|
|||
|
||||
with (
|
||||
patch(
|
||||
"litellm.llms.bedrock.image_generation.image_handler.BedrockImageGeneration._get_boto_credentials_from_optional_params"
|
||||
"litellm.llms.bedrock.image_generation.image_handler.BedrockImageGeneration."
|
||||
"_get_boto_credentials_from_optional_params"
|
||||
),
|
||||
patch(
|
||||
"litellm.llms.bedrock.image_generation.image_handler.BedrockImageGeneration.get_request_headers"
|
||||
|
|
@ -1072,7 +1072,8 @@ class TestDeAnonymizeConverseStream:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
async def test_reasoning_text_delta_de_anonymized(self):
|
||||
"""Reasoning deltas carry model output; their text must be guardrailed while the reasoning signature is left untouched."""
|
||||
"""Reasoning deltas carry model output; their text must be guardrailed while the
|
||||
reasoning signature is left untouched."""
|
||||
stream_bytes = (
|
||||
_build_event_stream_frame("messageStart", {"role": "assistant"})
|
||||
+ _build_event_stream_frame(
|
||||
|
|
@ -1105,7 +1106,8 @@ class TestDeAnonymizeConverseStream:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
async def test_tool_use_input_delta_de_anonymized(self):
|
||||
"""toolUse.input deltas carry model-generated tool arguments and must be guardrailed instead of being forwarded raw."""
|
||||
"""toolUse.input deltas carry model-generated tool arguments and must be
|
||||
guardrailed instead of being forwarded raw."""
|
||||
stream_bytes = _build_event_stream_frame(
|
||||
"contentBlockDelta",
|
||||
{"contentBlockIndex": 0, "delta": {"toolUse": {"input": '{"q":"<PERSON_1>"}'}}},
|
||||
|
|
@ -1154,7 +1156,8 @@ class TestDeAnonymizeConverseStream:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
async def test_text_and_reasoning_deltas_de_anonymized_independently(self):
|
||||
"""Distinct delta kinds must each be guardrailed and written back into their own field without bleeding the de-anonymized text across kinds."""
|
||||
"""Distinct delta kinds must each be guardrailed and written back into their own
|
||||
field without bleeding the de-anonymized text across kinds."""
|
||||
captured = {}
|
||||
|
||||
async def mock_hook(data, user_api_key_dict, response):
|
||||
|
|
@ -1192,7 +1195,8 @@ class TestDeAnonymizeConverseStream:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
async def test_reasoning_signature_only_frame_left_unmodified(self):
|
||||
"""A reasoning delta carrying only a signature has no guardrailable text; it must be forwarded untouched and the guardrail must not run."""
|
||||
"""A reasoning delta carrying only a signature has no guardrailable text; it must
|
||||
be forwarded untouched and the guardrail must not run."""
|
||||
stream_bytes = _build_event_stream_frame(
|
||||
"contentBlockDelta",
|
||||
{"contentBlockIndex": 0, "delta": {"reasoningContent": {"signature": "sig"}}},
|
||||
|
|
@ -367,8 +367,6 @@ def test_bedrock_passthrough_region_extraction_from_inference_profile_arn():
|
|||
assert (
|
||||
"us-west-2" in api_base
|
||||
), f"Expected region 'us-west-2' from ARN in base URL, but got: {api_base}"
|
||||
|
||||
|
||||
def test_bedrock_passthrough_model_id_arn_encoding():
|
||||
"""
|
||||
Test that model_id ARNs are properly URL-encoded when used in endpoints.
|
||||
|
|
@ -421,7 +419,9 @@ def test_bedrock_passthrough_model_id_arn_encoding():
|
|||
), f"ARN slash should be encoded, but found unencoded version in: {url_str}"
|
||||
|
||||
# Verify the complete expected URL structure
|
||||
expected_encoded_model_id = "arn:aws:bedrock:us-east-1:590183661440:application-inference-profile%2Fb943q2qbl3m7"
|
||||
expected_encoded_model_id = (
|
||||
"arn:aws:bedrock:us-east-1:590183661440:application-inference-profile%2Fb943q2qbl3m7"
|
||||
)
|
||||
expected_url = f"https://bedrock-runtime.us-east-1.amazonaws.com/model/{expected_encoded_model_id}/converse"
|
||||
assert url_str == expected_url, f"Expected {expected_url}, but got: {url_str}"
|
||||
|
||||
|
|
@ -517,7 +517,10 @@ def test_bedrock_passthrough_model_id_without_arn():
|
|||
def _event_frame(event_type: str, payload: dict) -> bytes:
|
||||
def header(name: str, value: str) -> bytes:
|
||||
name_b, value_b = name.encode(), value.encode()
|
||||
return struct.pack("!B", len(name_b)) + name_b + struct.pack("!B", 7) + struct.pack("!H", len(value_b)) + value_b
|
||||
return (
|
||||
struct.pack("!B", len(name_b)) + name_b
|
||||
+ struct.pack("!B", 7) + struct.pack("!H", len(value_b)) + value_b
|
||||
)
|
||||
|
||||
payload_b = json.dumps(payload, separators=(",", ":")).encode()
|
||||
headers_b = (
|
||||
|
|
@ -591,7 +594,9 @@ def _feed(collector: PassthroughStreamCollector, stream: bytes, chunk_size: int
|
|||
|
||||
def test_converse_stream_collector_keeps_usage_without_retaining_the_stream():
|
||||
texts = [f"tok{i} " for i in range(4000)]
|
||||
stream = _event_frame("messageStart", {"role": "assistant"}) + _text_block(0, texts) + _stream_tail("end_turn", 4000)
|
||||
stream = (
|
||||
_event_frame("messageStart", {"role": "assistant"}) + _text_block(0, texts) + _stream_tail("end_turn", 4000)
|
||||
)
|
||||
_feed(_converse_stream_collector(), stream)
|
||||
|
||||
tracemalloc.start()
|
||||
|
|
@ -18,6 +18,21 @@ from litellm.llms.bedrock.realtime.handler import BedrockRealtime
|
|||
from litellm.llms.bedrock.realtime.transformation import BedrockRealtimeConfig
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def _isolate_host_aws_config(monkeypatch, tmp_path):
|
||||
monkeypatch.setenv("AWS_SHARED_CREDENTIALS_FILE", str(tmp_path / "credentials"))
|
||||
monkeypatch.setenv("AWS_CONFIG_FILE", str(tmp_path / "config"))
|
||||
monkeypatch.setenv("AWS_EC2_METADATA_DISABLED", "true")
|
||||
for env_var in (
|
||||
"AWS_PROFILE",
|
||||
"AWS_DEFAULT_PROFILE",
|
||||
"AWS_BEARER_TOKEN_BEDROCK",
|
||||
"AWS_REGION_NAME",
|
||||
"AWS_DEFAULT_REGION",
|
||||
):
|
||||
monkeypatch.delenv(env_var, raising=False)
|
||||
|
||||
|
||||
class FakePayloadPart:
|
||||
def __init__(self, bytes_):
|
||||
self.bytes_ = bytes_
|
||||
|
|
@ -15,6 +15,21 @@ from litellm.llms.bedrock.base_aws_llm import Boto3CredentialsInfo
|
|||
from litellm.llms.bedrock.rerank.handler import BedrockRerankHandler
|
||||
from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def _isolate_host_aws_config(monkeypatch, tmp_path):
|
||||
monkeypatch.setenv("AWS_SHARED_CREDENTIALS_FILE", str(tmp_path / "credentials"))
|
||||
monkeypatch.setenv("AWS_CONFIG_FILE", str(tmp_path / "config"))
|
||||
monkeypatch.setenv("AWS_EC2_METADATA_DISABLED", "true")
|
||||
for env_var in (
|
||||
"AWS_PROFILE",
|
||||
"AWS_DEFAULT_PROFILE",
|
||||
"AWS_BEARER_TOKEN_BEDROCK",
|
||||
"AWS_REGION_NAME",
|
||||
"AWS_DEFAULT_REGION",
|
||||
):
|
||||
monkeypatch.delenv(env_var, raising=False)
|
||||
|
||||
# Mock response for Bedrock rerank
|
||||
# Format based on Bedrock rerank API response structure
|
||||
bedrock_rerank_response = {
|
||||
|
|
@ -30,7 +45,8 @@ bedrock_rerank_response = {
|
|||
test_query = "What is the capital of the United States?"
|
||||
test_documents = [
|
||||
"Carson City is the capital city of the American state of Nevada.",
|
||||
"The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan.",
|
||||
"The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. "
|
||||
"Its capital is Saipan.",
|
||||
"Washington, D.C. is the capital of the United States.",
|
||||
]
|
||||
|
||||
|
|
@ -46,7 +46,8 @@ def test_transform_search_request_encodes_vector_store_id():
|
|||
|
||||
assert (
|
||||
url
|
||||
== "https://bedrock-agent-runtime.us-west-2.amazonaws.com/knowledgebases/..%2F..%2Fknowledgebases%2Fother%3Fx%3D1%23frag/retrieve"
|
||||
== "https://bedrock-agent-runtime.us-west-2.amazonaws.com/knowledgebases/..%2F..%2Fknowledgebases%2Fother"
|
||||
"%3Fx%3D1%23frag/retrieve"
|
||||
)
|
||||
assert body["retrievalQuery"].get("text") == "hello"
|
||||
|
||||
|
|
@ -109,7 +109,13 @@ def test_region_falls_back_to_the_mantle_default_without_any_hint(no_ambient_aws
|
|||
({}, {"AWS_BEARER_TOKEN_BEDROCK": "aws-env-key"}, "aws-env-key"),
|
||||
],
|
||||
)
|
||||
def test_sign_request_uses_the_deployment_bearer_token(no_ambient_aws, monkeypatch, litellm_params, env, expected_bearer):
|
||||
def test_sign_request_uses_the_deployment_bearer_token(
|
||||
no_ambient_aws,
|
||||
monkeypatch,
|
||||
litellm_params,
|
||||
env,
|
||||
expected_bearer,
|
||||
):
|
||||
for name, value in env.items():
|
||||
monkeypatch.setenv(name, value)
|
||||
headers, body = BedrockMantlePassthroughConfig().sign_request(
|
||||
|
|
@ -8,6 +8,32 @@ from litellm.llms.bytez.chat.transformation import BytezChatConfig, API_BASE, ve
|
|||
TEST_API_KEY = "MOCK_BYTEZ_API_KEY"
|
||||
TEST_MODEL_NAME = "google/gemma-3-4b-it"
|
||||
TEST_MODEL = f"bytez/{TEST_MODEL_NAME}"
|
||||
CAT_IMAGE_URL = (
|
||||
"https://images.squarespace-cdn.com/content/v1/5452d441e4b0c188b51fef1a/1615326541809-TW01PVTOJ4PXQUX"
|
||||
"VRLHI/male-orange-tabby-cat.jpg"
|
||||
)
|
||||
KAGGLE_AUDIO_URL = (
|
||||
"https://storage.googleapis.com/kagglesdsdata/datasets/1736753/2838478/dataset/dataset/B_ANI01_MC_FN_"
|
||||
"SIM01_101.wav?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=databundle-worker-v2%40kaggle-1616"
|
||||
"07.iam.gserviceaccount.com%2F20250711%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250711T192905Z&"
|
||||
"X-Goog-Expires=345600&X-Goog-SignedHeaders=host&X-Goog-Signature=812b4bd6fcf9296f8e34f67664d900a81cf"
|
||||
"81a4c8a4f439ce12befc89b4bef07c2645cab20ce5ba8f6b311dffa85aa05b70b4efbe53bced50a43a5e7622ea1ee0d8cc39"
|
||||
"0679cdc6a6aae2c27f75debc1ce2361c595b3c9e1b8c88e2756ffc6b4f290af7f3dfa7232dc69ccc9a2181be756e0d538250"
|
||||
"f9761a8b05ba1ac6c6b5d946f97a16aa14a5609ae62a2c4713c2077fcd34d129dbcdac6bb543ae547507b1a424e4fd09f817"
|
||||
"000943c11507e0a74c514ec212b17427b7fc9e2ce87a250db1258645e4862a4261e3790fd99c9186148ad0653acd2b6a9468"
|
||||
"adbeb94f17b5a685551037fd2cc9fe72fa405a006c0bd42d03be1e4c0dc4023ed3a77171edff3"
|
||||
)
|
||||
KAGGLE_VIDEO_URL = (
|
||||
"https://storage.googleapis.com/kagglesdsdata/datasets/3957252/6888743/dog1.mp4?X-Goog-Algorithm=GOOG"
|
||||
"4-RSA-SHA256&X-Goog-Credential=databundle-worker-v2%40kaggle-161607.iam.gserviceaccount.com%2F202507"
|
||||
"11%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250711T193025Z&X-Goog-Expires=345600&X-Goog-Signed"
|
||||
"Headers=host&X-Goog-Signature=810961d9abcbc2437954fdf19ef216deb65d3977eb354ec10af0d4644627cc6b143a5f"
|
||||
"c6450996bae1787c09d26334de7cd6ff887510a5ac2a6eed3cfcc6673a47686c84c1f2b0bf543009388d83f2cd9551ad5f72"
|
||||
"084513c6a7acd2c718849a4ebe951ccc5631bed014b0d115225c048b9f5de68673a37db24a98ad39cf3d0ba16fb764bf38eb"
|
||||
"90c78c295c21a4ddac08c3c661b65efd511ccb86bacb87a2e2a97a06f53ea1c64d5dcf274001a61bc20867802549601301d9"
|
||||
"99f5a5b2e49fd444b7db860c68e1c67df6e8edd5ad97171eaafb4fa1462453924ea4d78733be411cb6b5c910d4f829cd7189"
|
||||
"c28dc1b22c8ae2a4da844a0d202e9e64bc7fb17947"
|
||||
)
|
||||
TEST_MESSAGES = [{"role": "user", "content": "Hello"}]
|
||||
|
||||
|
||||
|
|
@ -148,7 +174,7 @@ class TestBytezChatConfig:
|
|||
"What color is this cat?",
|
||||
{
|
||||
"type": "image_url",
|
||||
"url": "https://images.squarespace-cdn.com/content/v1/5452d441e4b0c188b51fef1a/1615326541809-TW01PVTOJ4PXQUXVRLHI/male-orange-tabby-cat.jpg",
|
||||
"url": CAT_IMAGE_URL,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
|
@ -160,7 +186,7 @@ class TestBytezChatConfig:
|
|||
{"type": "text", "text": "What color is this cat?"},
|
||||
{
|
||||
"type": "image",
|
||||
"url": "https://images.squarespace-cdn.com/content/v1/5452d441e4b0c188b51fef1a/1615326541809-TW01PVTOJ4PXQUXVRLHI/male-orange-tabby-cat.jpg",
|
||||
"url": CAT_IMAGE_URL,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
|
@ -174,7 +200,7 @@ class TestBytezChatConfig:
|
|||
{"type": "text", "text": "What color is this cat?"},
|
||||
{
|
||||
"type": "image_url",
|
||||
"url": "https://images.squarespace-cdn.com/content/v1/5452d441e4b0c188b51fef1a/1615326541809-TW01PVTOJ4PXQUXVRLHI/male-orange-tabby-cat.jpg",
|
||||
"url": CAT_IMAGE_URL,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
|
@ -186,7 +212,7 @@ class TestBytezChatConfig:
|
|||
{"type": "text", "text": "What color is this cat?"},
|
||||
{
|
||||
"type": "image",
|
||||
"url": "https://images.squarespace-cdn.com/content/v1/5452d441e4b0c188b51fef1a/1615326541809-TW01PVTOJ4PXQUXVRLHI/male-orange-tabby-cat.jpg",
|
||||
"url": CAT_IMAGE_URL,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
|
@ -200,7 +226,7 @@ class TestBytezChatConfig:
|
|||
{"type": "text", "text": "What kind of cat meow is this?"},
|
||||
{
|
||||
"type": "input_audio",
|
||||
"url": "https://storage.googleapis.com/kagglesdsdata/datasets/1736753/2838478/dataset/dataset/B_ANI01_MC_FN_SIM01_101.wav?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=databundle-worker-v2%40kaggle-161607.iam.gserviceaccount.com%2F20250711%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250711T192905Z&X-Goog-Expires=345600&X-Goog-SignedHeaders=host&X-Goog-Signature=812b4bd6fcf9296f8e34f67664d900a81cf81a4c8a4f439ce12befc89b4bef07c2645cab20ce5ba8f6b311dffa85aa05b70b4efbe53bced50a43a5e7622ea1ee0d8cc390679cdc6a6aae2c27f75debc1ce2361c595b3c9e1b8c88e2756ffc6b4f290af7f3dfa7232dc69ccc9a2181be756e0d538250f9761a8b05ba1ac6c6b5d946f97a16aa14a5609ae62a2c4713c2077fcd34d129dbcdac6bb543ae547507b1a424e4fd09f817000943c11507e0a74c514ec212b17427b7fc9e2ce87a250db1258645e4862a4261e3790fd99c9186148ad0653acd2b6a9468adbeb94f17b5a685551037fd2cc9fe72fa405a006c0bd42d03be1e4c0dc4023ed3a77171edff3",
|
||||
"url": KAGGLE_AUDIO_URL,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
|
@ -212,7 +238,7 @@ class TestBytezChatConfig:
|
|||
{"type": "text", "text": "What kind of cat meow is this?"},
|
||||
{
|
||||
"type": "audio",
|
||||
"url": "https://storage.googleapis.com/kagglesdsdata/datasets/1736753/2838478/dataset/dataset/B_ANI01_MC_FN_SIM01_101.wav?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=databundle-worker-v2%40kaggle-161607.iam.gserviceaccount.com%2F20250711%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250711T192905Z&X-Goog-Expires=345600&X-Goog-SignedHeaders=host&X-Goog-Signature=812b4bd6fcf9296f8e34f67664d900a81cf81a4c8a4f439ce12befc89b4bef07c2645cab20ce5ba8f6b311dffa85aa05b70b4efbe53bced50a43a5e7622ea1ee0d8cc390679cdc6a6aae2c27f75debc1ce2361c595b3c9e1b8c88e2756ffc6b4f290af7f3dfa7232dc69ccc9a2181be756e0d538250f9761a8b05ba1ac6c6b5d946f97a16aa14a5609ae62a2c4713c2077fcd34d129dbcdac6bb543ae547507b1a424e4fd09f817000943c11507e0a74c514ec212b17427b7fc9e2ce87a250db1258645e4862a4261e3790fd99c9186148ad0653acd2b6a9468adbeb94f17b5a685551037fd2cc9fe72fa405a006c0bd42d03be1e4c0dc4023ed3a77171edff3",
|
||||
"url": KAGGLE_AUDIO_URL,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
|
@ -226,7 +252,7 @@ class TestBytezChatConfig:
|
|||
{"type": "text", "text": "What kind of dog is this?"},
|
||||
{
|
||||
"type": "video_url",
|
||||
"url": "https://storage.googleapis.com/kagglesdsdata/datasets/3957252/6888743/dog1.mp4?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=databundle-worker-v2%40kaggle-161607.iam.gserviceaccount.com%2F20250711%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250711T193025Z&X-Goog-Expires=345600&X-Goog-SignedHeaders=host&X-Goog-Signature=810961d9abcbc2437954fdf19ef216deb65d3977eb354ec10af0d4644627cc6b143a5fc6450996bae1787c09d26334de7cd6ff887510a5ac2a6eed3cfcc6673a47686c84c1f2b0bf543009388d83f2cd9551ad5f72084513c6a7acd2c718849a4ebe951ccc5631bed014b0d115225c048b9f5de68673a37db24a98ad39cf3d0ba16fb764bf38eb90c78c295c21a4ddac08c3c661b65efd511ccb86bacb87a2e2a97a06f53ea1c64d5dcf274001a61bc20867802549601301d999f5a5b2e49fd444b7db860c68e1c67df6e8edd5ad97171eaafb4fa1462453924ea4d78733be411cb6b5c910d4f829cd7189c28dc1b22c8ae2a4da844a0d202e9e64bc7fb17947",
|
||||
"url": KAGGLE_VIDEO_URL,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
|
@ -238,7 +264,7 @@ class TestBytezChatConfig:
|
|||
{"type": "text", "text": "What kind of dog is this?"},
|
||||
{
|
||||
"type": "video",
|
||||
"url": "https://storage.googleapis.com/kagglesdsdata/datasets/3957252/6888743/dog1.mp4?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=databundle-worker-v2%40kaggle-161607.iam.gserviceaccount.com%2F20250711%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250711T193025Z&X-Goog-Expires=345600&X-Goog-SignedHeaders=host&X-Goog-Signature=810961d9abcbc2437954fdf19ef216deb65d3977eb354ec10af0d4644627cc6b143a5fc6450996bae1787c09d26334de7cd6ff887510a5ac2a6eed3cfcc6673a47686c84c1f2b0bf543009388d83f2cd9551ad5f72084513c6a7acd2c718849a4ebe951ccc5631bed014b0d115225c048b9f5de68673a37db24a98ad39cf3d0ba16fb764bf38eb90c78c295c21a4ddac08c3c661b65efd511ccb86bacb87a2e2a97a06f53ea1c64d5dcf274001a61bc20867802549601301d999f5a5b2e49fd444b7db860c68e1c67df6e8edd5ad97171eaafb4fa1462453924ea4d78733be411cb6b5c910d4f829cd7189c28dc1b22c8ae2a4da844a0d202e9e64bc7fb17947",
|
||||
"url": KAGGLE_VIDEO_URL,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
|
@ -106,7 +106,10 @@ class TestBedrockRegionInModelPath:
|
|||
), f"modelId mismatch for {model!r}: got {model_id!r}, expected {expected_model_id!r}"
|
||||
assert (
|
||||
optional_params.get("aws_region_name") == expected_region
|
||||
), f"region mismatch for {model!r}: got {optional_params.get('aws_region_name')!r}, expected {expected_region!r}"
|
||||
), (
|
||||
f"region mismatch for {model!r}: "
|
||||
f"got {optional_params.get('aws_region_name')!r}, expected {expected_region!r}"
|
||||
)
|
||||
|
||||
def test_explicit_aws_region_name_not_overridden(self):
|
||||
"""
|
||||
Loading…
Add table
Reference in a new issue