From 11393f86f5b83e249a43dd53cf22f59414f43f0f Mon Sep 17 00:00:00 2001 From: Yuneng Jiang Date: Fri, 15 May 2026 21:13:36 -0700 Subject: [PATCH] test(interactions): validate response fields against Interaction schema Google restructured the live spec at ai.google.dev/static/api/ interactions.openapi.json: the output-only fields (notably the `steps` array, formerly `outputs`) moved off the request schema `CreateModelInteractionParams` onto a dedicated `Interaction` response schema. The response-side tests still read from the request schema, so `test_interaction_response_fields` failed with "Output field 'steps' not in spec". Point `test_interaction_response_fields` and `test_status_enum_values` at the `Interaction` schema (the semantic response object; all output fields incl. `steps` present there). Request-side tests keep using `CreateModelInteractionParams` (all request fields verified still present). 13/13 pass against the current live spec. --- .../interactions/test_openapi_compliance.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/test_litellm/interactions/test_openapi_compliance.py b/tests/test_litellm/interactions/test_openapi_compliance.py index 11d61d4c82e..1d3b6b8ae1e 100644 --- a/tests/test_litellm/interactions/test_openapi_compliance.py +++ b/tests/test_litellm/interactions/test_openapi_compliance.py @@ -153,12 +153,13 @@ class TestResponseCompliance: def test_interaction_response_fields(self, spec_dict): """Verify our InteractionsAPIResponse has correct fields.""" - # The response is the Interaction schema - # Check CreateModelInteractionParams which includes output fields - schema = spec_dict["components"]["schemas"]["CreateModelInteractionParams"] + # The response is the dedicated `Interaction` schema. Google moved the + # output-only fields (notably the `steps` array, formerly `outputs`) + # off `CreateModelInteractionParams` and onto `Interaction`; the request + # schema no longer carries `steps`. Keep this aligned with the live spec. + schema = spec_dict["components"]["schemas"]["Interaction"] - # Output fields (readOnly). Google renamed `outputs` → `steps` in the - # upstream spec; keep this list aligned with the live schema. + # Output fields (readOnly). output_fields = [ "id", "status", @@ -175,7 +176,8 @@ class TestResponseCompliance: def test_status_enum_values(self, spec_dict): """Verify status enum values match spec.""" - schema = spec_dict["components"]["schemas"]["CreateModelInteractionParams"] + # `status` is an output-only field; validate against the response schema. + schema = spec_dict["components"]["schemas"]["Interaction"] status_prop = schema["properties"]["status"] # Google Interactions API uses lowercase status values (updated Feb 2026) expected_statuses = [