test_tool_retry_multiple_middleware_composition() — langchain Function Reference
Architecture documentation for the test_tool_retry_multiple_middleware_composition() function in test_tool_retry.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 703e2ad1_64e7_cee0_94f3_8548d55812cd["test_tool_retry_multiple_middleware_composition()"] c71b26df_821f_59ac_c7ef_3b96fcbe0d5b["test_tool_retry.py"] 703e2ad1_64e7_cee0_94f3_8548d55812cd -->|defined in| c71b26df_821f_59ac_c7ef_3b96fcbe0d5b style 703e2ad1_64e7_cee0_94f3_8548d55812cd fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_tool_retry.py lines 867–909
def test_tool_retry_multiple_middleware_composition() -> None:
"""Test ToolRetryMiddlewarecomposes correctly with other middleware."""
call_log = []
# Custom middleware that logs calls
@wrap_tool_call
def logging_middleware(
request: ToolCallRequest, handler: Callable[[ToolCallRequest], ToolMessage | Command[Any]]
) -> ToolMessage | Command[Any]:
if request.tool:
call_log.append(f"before_{request.tool.name}")
response = handler(request)
if request.tool:
call_log.append(f"after_{request.tool.name}")
return response
model = FakeToolCallingModel(
tool_calls=[
[ToolCall(name="working_tool", args={"value": "test"}, id="1")],
[],
]
)
retry = ToolRetryMiddleware(max_retries=2, initial_delay=0.01, jitter=False)
agent = create_agent(
model=model,
tools=[working_tool],
middleware=[logging_middleware, retry],
checkpointer=InMemorySaver(),
)
result = agent.invoke(
{"messages": [HumanMessage("Use working tool")]},
{"configurable": {"thread_id": "test"}},
)
# Both middleware should be called
assert call_log == ["before_working_tool", "after_working_tool"]
tool_messages = [m for m in result["messages"] if isinstance(m, ToolMessage)]
assert len(tool_messages) == 1
assert "Success: test" in tool_messages[0].content
Domain
Subdomains
Source
Frequently Asked Questions
What does test_tool_retry_multiple_middleware_composition() do?
test_tool_retry_multiple_middleware_composition() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_tool_retry.py.
Where is test_tool_retry_multiple_middleware_composition() defined?
test_tool_retry_multiple_middleware_composition() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_tool_retry.py at line 867.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free