refactor: simplifica o adapter DeepAgents

This commit is contained in:
alex alves
2026-11-05 16:22:23 -03:00
parent fbbe47d90d
commit 85fc4c4d46
3 changed files with 56 additions and 52 deletions

View File

@@ -11,7 +11,7 @@ def make_adapter(events, timeout=0.05):
adapter = object.__new__(DeepAgentsAdapter)
adapter._closed = False
adapter._stream_event_timeout = timeout
adapter.agent = SimpleNamespace(astream=lambda *args, **kwargs: events)
adapter._graph = SimpleNamespace(astream=lambda *args, **kwargs: events)
return adapter
@@ -138,9 +138,42 @@ def test_adapter_streams_real_deepagents_graph_with_fake_model():
adapter = object.__new__(DeepAgentsAdapter)
adapter._closed = False
adapter._stream_event_timeout = 2.0
adapter.agent = create_deep_agent(
adapter._graph = create_deep_agent(
model=Model(responses=["Olá Lara."]), tools=[], checkpointer=MemorySaver(),
)
response = await adapter.process("session", 1, "Diga olá")
assert response == "Olá Lara."
asyncio.run(scenario())
def test_process_rejects_empty_text_response_and_closes_stream():
async def scenario():
closed = asyncio.Event()
async def source():
try:
yield event([{"type": "reasoning", "text": "Interno"}])
finally:
closed.set()
with pytest.raises(RuntimeError, match="empty streaming response"):
await make_adapter(source()).process("session", 1, "Olá")
assert closed.is_set()
asyncio.run(scenario())
def test_process_propagates_provider_failure_and_closes_stream():
async def scenario():
closed = asyncio.Event()
async def source():
try:
yield event("Texto parcial")
raise ValueError("provider failure")
finally:
closed.set()
with pytest.raises(ValueError, match="provider failure"):
await make_adapter(source()).process("session", 1, "Olá")
assert closed.is_set()
asyncio.run(scenario())