diff --git a/src/openai/lib/_parsing/_responses.py b/src/openai/lib/_parsing/_responses.py index 232718cef6..6fdadf9379 100644 --- a/src/openai/lib/_parsing/_responses.py +++ b/src/openai/lib/_parsing/_responses.py @@ -58,7 +58,7 @@ def parse_response( ) -> ParsedResponse[TextFormatT]: output_list: List[ParsedResponseOutputItem[TextFormatT]] = [] - for output in response.output: + for output in response.output or []: if output.type == "message": content_list: List[ParsedContent[TextFormatT]] = [] for item in output.content: diff --git a/tests/lib/test_responses_parsing.py b/tests/lib/test_responses_parsing.py new file mode 100644 index 0000000000..e03d20e996 --- /dev/null +++ b/tests/lib/test_responses_parsing.py @@ -0,0 +1,17 @@ +from __future__ import annotations + +from openai.lib._parsing._responses import parse_response +from openai.types.responses.response import Response +from openai import NOT_GIVEN + + +def test_parse_response_handles_none_output() -> None: + response = Response.model_construct(output=None) + + parsed = parse_response( + text_format=NOT_GIVEN, + input_tools=NOT_GIVEN, + response=response, + ) + + assert parsed.output == []