test_three_middleware_composition() — langchain Function Reference
Architecture documentation for the test_three_middleware_composition() function in test_wrap_model_call.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 2310f356_7b5d_fbc8_cc38_8dfd009e0bd6["test_three_middleware_composition()"] 2d096fab_8a25_1dfa_6e53_a3f5603e55c2["TestMiddlewareComposition"] 2310f356_7b5d_fbc8_cc38_8dfd009e0bd6 -->|defined in| 2d096fab_8a25_1dfa_6e53_a3f5603e55c2 style 2310f356_7b5d_fbc8_cc38_8dfd009e0bd6 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py lines 720–774
def test_three_middleware_composition(self) -> None:
"""Test composition of three middleware."""
execution_order = []
class FirstMiddleware(AgentMiddleware):
def wrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelCallResult:
execution_order.append("first-before")
response = handler(request)
execution_order.append("first-after")
return response
class SecondMiddleware(AgentMiddleware):
def wrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelCallResult:
execution_order.append("second-before")
response = handler(request)
execution_order.append("second-after")
return response
class ThirdMiddleware(AgentMiddleware):
def wrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelCallResult:
execution_order.append("third-before")
response = handler(request)
execution_order.append("third-after")
return response
model = GenericFakeChatModel(messages=iter([AIMessage(content="Response")]))
agent = create_agent(
model=model,
middleware=[FirstMiddleware(), SecondMiddleware(), ThirdMiddleware()],
)
agent.invoke({"messages": [HumanMessage("Test")]})
# First wraps Second wraps Third:
# 1-before, 2-before, 3-before, model, 3-after, 2-after, 1-after
assert execution_order == [
"first-before",
"second-before",
"third-before",
"third-after",
"second-after",
"first-after",
]
Domain
Subdomains
Source
Frequently Asked Questions
What does test_three_middleware_composition() do?
test_three_middleware_composition() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py.
Where is test_three_middleware_composition() defined?
test_three_middleware_composition() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py at line 720.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free