test_parallel_write_todos_with_other_tools_async() — langchain Function Reference
Architecture documentation for the test_parallel_write_todos_with_other_tools_async() function in test_todo.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 2944538f_b300_0a6b_e5d3_3231cb4f6564["test_parallel_write_todos_with_other_tools_async()"] d2f3bc2a_72aa_59d0_8558_330793eda010["test_todo.py"] 2944538f_b300_0a6b_e5d3_3231cb4f6564 -->|defined in| d2f3bc2a_72aa_59d0_8558_330793eda010 51077994_451d_5d5c_62d8_c5d5b714096b["_fake_runtime()"] 2944538f_b300_0a6b_e5d3_3231cb4f6564 -->|calls| 51077994_451d_5d5c_62d8_c5d5b714096b style 2944538f_b300_0a6b_e5d3_3231cb4f6564 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_todo.py lines 705–761
async def test_parallel_write_todos_with_other_tools_async() -> None:
"""Test async version - parallel write_todos calls are rejected but other tool calls remain."""
middleware = TodoListMiddleware()
# Create an AI message with two write_todos calls and one other tool call
ai_message = AIMessage(
content="I'll do multiple things",
tool_calls=[
{
"name": "some_other_tool",
"args": {"param": "value"},
"id": "call_other",
"type": "tool_call",
},
{
"name": "write_todos",
"args": {"todos": [{"content": "Task 1", "status": "pending"}]},
"id": "call_1",
"type": "tool_call",
},
{
"name": "write_todos",
"args": {"todos": [{"content": "Task 2", "status": "pending"}]},
"id": "call_2",
"type": "tool_call",
},
],
)
state: PlanningState = {"messages": [HumanMessage(content="Hello"), ai_message]}
# Call aafter_model hook
result = await middleware.aafter_model(state, _fake_runtime())
# Should return error messages for write_todos calls only
assert result == {
"messages": [
ToolMessage(
content=(
"Error: The `write_todos` tool should never be called multiple times "
"in parallel. Please call it only once per model invocation to update "
"the todo list."
),
tool_call_id="call_1",
status="error",
),
ToolMessage(
content=(
"Error: The `write_todos` tool should never be called multiple times "
"in parallel. Please call it only once per model invocation to update "
"the todo list."
),
tool_call_id="call_2",
status="error",
),
]
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does test_parallel_write_todos_with_other_tools_async() do?
test_parallel_write_todos_with_other_tools_async() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_todo.py.
Where is test_parallel_write_todos_with_other_tools_async() defined?
test_parallel_write_todos_with_other_tools_async() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_todo.py at line 705.
What does test_parallel_write_todos_with_other_tools_async() call?
test_parallel_write_todos_with_other_tools_async() calls 1 function(s): _fake_runtime.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free