refactor(graph): Use piped Runnables for worker nodes to enable subgraph event streaming

This commit is contained in:
Yunxiao Xu
2026-02-23 17:48:23 -08:00
parent 02d93120e0
commit b8d8651924
3 changed files with 40 additions and 43 deletions

View File

@@ -19,14 +19,13 @@ def auth_header(mock_user):
yield {"Authorization": f"Bearer {token}"}
app.dependency_overrides.clear()
def test_persistence_integration_success(auth_header, mock_user):
"""Test that messages and plots are persisted correctly during streaming."""
mock_events = [
{"event": "on_chat_model_stream", "name": "summarizer", "data": {"chunk": "Final answer"}},
{"event": "on_chain_end", "name": "summarizer", "data": {"output": {"messages": [{"content": "Final answer"}]}}},
{"event": "on_chain_end", "name": "summarize_conversation", "data": {"output": {"summary": "New summary"}}}
]
def test_persistence_integration_success(auth_header, mock_user):
"""Test that messages and plots are persisted correctly during streaming."""
mock_events = [
{"event": "on_chat_model_stream", "metadata": {"langgraph_node": "synthesizer"}, "data": {"chunk": "Final answer"}},
{"event": "on_chain_end", "name": "synthesizer", "data": {"output": {"messages": [{"content": "Final answer"}]}}},
{"event": "on_chain_end", "name": "summarize_conversation", "data": {"output": {"summary": "New summary"}}}
]
async def mock_astream_events(*args, **kwargs):
for event in mock_events:
yield event