test(vertex_ai/gemini): add tests for BadRequestError on null and empty image_url

Added new test cases to ensure that a BadRequestError is raised when the image_url key is explicitly set to null or is an empty dictionary. These tests validate the handling of edge cases for the image_url field in the Gemini model.
This commit is contained in:
S0ngRu1 2026-05-13 14:26:56 +08:00
parent 4f6fad98a6
commit 79f2e327eb

View file

@ -28,3 +28,25 @@ def test_missing_url_inside_image_url_dict_raises_bad_request_error():
with pytest.raises(litellm.BadRequestError) as exc_info:
_gemini_convert_messages_with_history(messages, model="gemini-1.5-pro")
assert "'url' field is missing inside" in str(exc_info.value)
def test_explicit_null_image_url_raises_bad_request_error():
"""When image_url key is present but explicitly null, a BadRequestError is raised."""
messages = cast(
List[AllMessageValues],
[{"role": "user", "content": [{"type": "image_url", "image_url": None}]}],
)
with pytest.raises(litellm.BadRequestError) as exc_info:
_gemini_convert_messages_with_history(messages, model="gemini-1.5-pro")
assert "'image_url' field is missing" in str(exc_info.value)
def test_empty_dict_image_url_raises_bad_request_error():
"""When image_url is an empty dict (no url), a BadRequestError is raised."""
messages = cast(
List[AllMessageValues],
[{"role": "user", "content": [{"type": "image_url", "image_url": {}}]}],
)
with pytest.raises(litellm.BadRequestError) as exc_info:
_gemini_convert_messages_with_history(messages, model="gemini-1.5-pro")
assert "'url' field is missing inside" in str(exc_info.value)