Skip to content

Commit 8540bc8

Browse files
declan-scaleclaude
andcommitted
fix(tests): narrow reasoning delta types for pyright in codex reasoning tests
pyright does not narrow the StreamTaskMessageDelta.delta union through an isinstance filter inside a list comprehension, so accessing content_delta / summary_delta on the collected elements failed. Bind each delta to a local and assert isinstance before accessing the typed attribute. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent fc90f09 commit 8540bc8

1 file changed

Lines changed: 13 additions & 5 deletions

File tree

tests/lib/adk/test_codex_sync.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -405,9 +405,13 @@ async def test_reasoning_start_deltas_done(self) -> None:
405405
assert isinstance(starts[0].content, ReasoningContent)
406406
assert reasoning_fulls == []
407407
assert len(content_deltas) == 1
408-
assert content_deltas[0].delta.content_delta == "thinking... done"
408+
content_delta = content_deltas[0].delta
409+
assert isinstance(content_delta, ReasoningContentDelta)
410+
assert content_delta.content_delta == "thinking... done"
409411
assert len(summary_deltas) == 1
410-
assert summary_deltas[0].delta.summary_delta == "thinking... done"
412+
summary_delta = summary_deltas[0].delta
413+
assert isinstance(summary_delta, ReasoningSummaryDelta)
414+
assert summary_delta.summary_delta == "thinking... done"
411415
assert len(dones) == 1
412416
idx = starts[0].index
413417
assert content_deltas[0].index == idx
@@ -438,7 +442,9 @@ async def test_reasoning_no_started_opens_and_closes_one_message(self) -> None:
438442
assert isinstance(starts[0].content, ReasoningContent)
439443
assert reasoning_fulls == []
440444
assert len(content_deltas) == 1
441-
assert content_deltas[0].delta.content_delta == "orphan thought"
445+
content_delta = content_deltas[0].delta
446+
assert isinstance(content_delta, ReasoningContentDelta)
447+
assert content_delta.content_delta == "orphan thought"
442448
assert len(dones) == 1
443449
assert dones[0].index == starts[0].index
444450

@@ -451,10 +457,12 @@ async def test_reasoning_summary_is_first_line(self) -> None:
451457
},
452458
]
453459
out = await _collect(convert_codex_to_agentex_events(_aiter(events)))
454-
summary_delta = next(
460+
summary_event = next(
455461
e for e in out if isinstance(e, StreamTaskMessageDelta) and isinstance(e.delta, ReasoningSummaryDelta)
456462
)
457-
assert summary_delta.delta.summary_delta == "line one"
463+
summary_delta = summary_event.delta
464+
assert isinstance(summary_delta, ReasoningSummaryDelta)
465+
assert summary_delta.summary_delta == "line one"
458466

459467
async def test_reasoning_empty_block_closes_with_done_only(self) -> None:
460468
"""A reasoning block that completes with no text still closes its Start."""

0 commit comments

Comments
 (0)