From f3e0fd11d69e44819dadfa1b8ad80fa38d49650c Mon Sep 17 00:00:00 2001 From: S0ngRu1 <1922909737@qq.com> Date: Wed, 13 May 2026 16:56:45 +0800 Subject: [PATCH] test(vertex_ai/gemini): cover _is_valid_gcs_bucket_name IP, invalid chars, edge dots Co-authored-by: Cursor --- .../llms/vertex_ai/test_vertex.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/test_litellm/llms/vertex_ai/test_vertex.py b/tests/test_litellm/llms/vertex_ai/test_vertex.py index f1f89cdb38a..a0b841cf835 100644 --- a/tests/test_litellm/llms/vertex_ai/test_vertex.py +++ b/tests/test_litellm/llms/vertex_ai/test_vertex.py @@ -1428,6 +1428,31 @@ def test_is_valid_gcs_bucket_name_rejects_double_dot(): assert _is_valid_gcs_bucket_name("ab..cd") is False +def test_is_valid_gcs_bucket_name_rejects_ip_address_format(): + """Bucket names must not look like IPv4 addresses (GCS DNS constraint).""" + from litellm.llms.vertex_ai.gemini.transformation import _is_valid_gcs_bucket_name + + assert _is_valid_gcs_bucket_name("1.2.3.4") is False + assert _is_valid_gcs_bucket_name("192.168.0.1") is False + + +def test_is_valid_gcs_bucket_name_rejects_invalid_chars(): + from litellm.llms.vertex_ai.gemini.transformation import _is_valid_gcs_bucket_name + + assert _is_valid_gcs_bucket_name("Bucket-Upper") is False + assert _is_valid_gcs_bucket_name("bucket@name") is False + assert _is_valid_gcs_bucket_name("bucket name") is False + + +def test_is_valid_gcs_bucket_name_rejects_leading_trailing_special(): + from litellm.llms.vertex_ai.gemini.transformation import _is_valid_gcs_bucket_name + + assert _is_valid_gcs_bucket_name("-mybucket") is False + assert _is_valid_gcs_bucket_name("mybucket-") is False + assert _is_valid_gcs_bucket_name(".mybucket") is False + assert _is_valid_gcs_bucket_name("mybucket.") is False + + def test_get_gcs_object_content_type_uses_shared_vertex_base_instance(): from litellm.llms.vertex_ai.gemini import transformation as gemini_transformation