Skip to content

Commit f5d746f

Browse files
committed
test: responses API gracefully handles None input
1 parent 762fb1a commit f5d746f

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

instrumentation-genai/opentelemetry-instrumentation-openai-v2/tests/test_responses_handlers.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
output_to_event,
2424
responses_input_to_event,
2525
)
26+
from opentelemetry.instrumentation.openai_v2.responses_patch import (
27+
_log_responses_inputs,
28+
)
2629

2730

2831
@dataclass
@@ -38,6 +41,14 @@ class OutputItemMock:
3841
arguments: Optional[str] = None
3942

4043

44+
class _CapturingLogger:
45+
def __init__(self) -> None:
46+
self.emitted: list[Any] = []
47+
48+
def emit(self, record: Any) -> None:
49+
self.emitted.append(record)
50+
51+
4152
@pytest.mark.parametrize(
4253
"input_data",
4354
[
@@ -152,6 +163,24 @@ def test_string_input_does_not_crash():
152163
)
153164

154165

166+
def test_responses_create_input_none_is_noop_for_logging():
167+
logger = _CapturingLogger()
168+
169+
_log_responses_inputs(logger, {"input": None}, capture_content=True)
170+
_log_responses_inputs(logger, {"input": None}, capture_content=False)
171+
172+
assert logger.emitted == []
173+
174+
175+
def test_responses_create_input_omitted_is_noop_for_logging():
176+
logger = _CapturingLogger()
177+
178+
_log_responses_inputs(logger, {}, capture_content=True)
179+
_log_responses_inputs(logger, {}, capture_content=False)
180+
181+
assert logger.emitted == []
182+
183+
155184
@pytest.mark.parametrize(
156185
"unexpected_input",
157186
[

0 commit comments

Comments
 (0)