From 25b2806301bb03c6af5c56cde3116783403e8cc6 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Thu, 7 Aug 2025 00:30:11 -0700 Subject: [PATCH] fix: accommodate for open api schema that do not have any 'properties' PiperOrigin-RevId: 792028582 --- src/google/adk/tools/_gemini_schema_util.py | 2 +- tests/unittests/tools/test_gemini_schema_util.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/google/adk/tools/_gemini_schema_util.py b/src/google/adk/tools/_gemini_schema_util.py index 020e38fc..b7418da0 100644 --- a/src/google/adk/tools/_gemini_schema_util.py +++ b/src/google/adk/tools/_gemini_schema_util.py @@ -120,7 +120,7 @@ def _sanitize_schema_formats_for_gemini( snake_case_schema[field_name] = [ _sanitize_schema_formats_for_gemini(value) for value in field_value ] - elif field_name in dict_schema_field_names: + elif field_name in dict_schema_field_names and field_value is not None: snake_case_schema[field_name] = { key: _sanitize_schema_formats_for_gemini(value) for key, value in field_value.items() diff --git a/tests/unittests/tools/test_gemini_schema_util.py b/tests/unittests/tools/test_gemini_schema_util.py index 71143deb..31057a41 100644 --- a/tests/unittests/tools/test_gemini_schema_util.py +++ b/tests/unittests/tools/test_gemini_schema_util.py @@ -511,6 +511,14 @@ class TestToGeminiSchema: "type": "object", } + def test_to_gemini_schema_properties_is_none(self): + """Tests schema conversion when 'properties' field is None.""" + openapi_schema = {"type": "object", "properties": None} + gemini_schema = _to_gemini_schema(openapi_schema) + assert isinstance(gemini_schema, Schema) + assert gemini_schema.type == Type.OBJECT + assert gemini_schema.properties is None + class TestToSnakeCase: