This commit is contained in:
Chau Vu 2026-11-04 01:06:57 +00:00 • committed by GitHub
commit edb63e79ef
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 25 additions and 1 deletions

View file

@ -300,6 +300,8 @@ def _drop_field_when_present(item: object, field: str) -> None:
def _redact_responses_api_output(output_items):
"""Helper to redact ResponsesAPIResponse output items."""
if not output_items:
return
for output_item in output_items:
output_type = stream_item_field(output_item, "type")
if getattr(output_item, "text", None) is not None:
@ -376,7 +378,9 @@ def _redacted_responses_api_output_item(item: object, redacted_str: str) -> obje
}
def _redact_responses_api_output_dict(output_items: Sequence[object], redacted_str: str) -> Sequence[object]:
def _redact_responses_api_output_dict(output_items: Sequence[object] | None, redacted_str: str) -> Sequence[object]:
if not output_items:
return []
return [_redacted_responses_api_output_item(item, redacted_str) for item in output_items]

View file

@ -1033,6 +1033,26 @@ class TestPerformRedaction:
assert none_dict == {"type": "output_text", "text": None, "content": [{"text": None}]}
assert real_dict == {"type": "output_text", "text": "real answer", "content": [{"text": "real part"}]}
def test_redact_responses_api_output_handles_none(self):
from litellm.litellm_core_utils.redact_messages import (
_redact_responses_api_output,
_redact_responses_api_output_dict,
_redact_streaming_response,
)
_redact_responses_api_output(None)
assert _redact_responses_api_output_dict(None, "redacted-by-litellm") == []
# Test dictionary output: None
result_dict = {"output": None}
redacted_dict = perform_redaction({}, result_dict)
assert redacted_dict["output"] is None
# Test object/streaming response output: None
streaming_obj = SimpleNamespace(output=None)
_redact_streaming_response(streaming_obj)
assert streaming_obj.output is None
def test_skips_non_dict_response_output_items(self):
result = {
"output": [