TestBasicWrapModelCall Class — langchain Architecture
Architecture documentation for the TestBasicWrapModelCall class in test_wrap_model_call.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 9e73d5df_d4b0_2065_d8b9_d39fc190f3f0["TestBasicWrapModelCall"] 949c7cf4_56fe_f3b4_cd89_9631a7e9cb1e["AgentMiddleware"] 9e73d5df_d4b0_2065_d8b9_d39fc190f3f0 -->|extends| 949c7cf4_56fe_f3b4_cd89_9631a7e9cb1e 573473e5_eb93_a7d7_84ba_c975071c09af["test_wrap_model_call.py"] 9e73d5df_d4b0_2065_d8b9_d39fc190f3f0 -->|defined in| 573473e5_eb93_a7d7_84ba_c975071c09af 2d009756_8b41_9e01_c5bf_4891a0962428["test_passthrough_middleware()"] 9e73d5df_d4b0_2065_d8b9_d39fc190f3f0 -->|method| 2d009756_8b41_9e01_c5bf_4891a0962428 2effc964_e5f8_0943_8f8e_9589659aef8f["test_logging_middleware()"] 9e73d5df_d4b0_2065_d8b9_d39fc190f3f0 -->|method| 2effc964_e5f8_0943_8f8e_9589659aef8f defe0002_dad0_1c02_cd18_9658f8e0dd1a["test_counting_middleware()"] 9e73d5df_d4b0_2065_d8b9_d39fc190f3f0 -->|method| defe0002_dad0_1c02_cd18_9658f8e0dd1a
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py lines 36–103
class TestBasicWrapModelCall:
"""Test basic wrap_model_call functionality."""
def test_passthrough_middleware(self) -> None:
"""Test middleware that simply passes through without modification."""
class PassthroughMiddleware(AgentMiddleware):
def wrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelCallResult:
return handler(request)
model = GenericFakeChatModel(messages=iter([AIMessage(content="Hello")]))
agent = create_agent(model=model, middleware=[PassthroughMiddleware()])
result = agent.invoke({"messages": [HumanMessage("Hi")]})
assert len(result["messages"]) == 2
assert result["messages"][1].content == "Hello"
def test_logging_middleware(self) -> None:
"""Test middleware that logs calls without modification."""
call_log = []
class LoggingMiddleware(AgentMiddleware):
def wrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelCallResult:
call_log.append("before")
result = handler(request)
call_log.append("after")
return result
model = GenericFakeChatModel(messages=iter([AIMessage(content="Response")]))
agent = create_agent(model=model, middleware=[LoggingMiddleware()])
result = agent.invoke({"messages": [HumanMessage("Test")]})
assert call_log == ["before", "after"]
assert result["messages"][1].content == "Response"
def test_counting_middleware(self) -> None:
"""Test middleware that counts model calls."""
class CountingMiddleware(AgentMiddleware):
def __init__(self) -> None:
super().__init__()
self.call_count = 0
def wrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelCallResult:
self.call_count += 1
return handler(request)
counter = CountingMiddleware()
model = GenericFakeChatModel(messages=iter([AIMessage(content="Reply")]))
agent = create_agent(model=model, middleware=[counter])
agent.invoke({"messages": [HumanMessage("Test")]})
assert counter.call_count == 1
Extends
Source
Frequently Asked Questions
What is the TestBasicWrapModelCall class?
TestBasicWrapModelCall is a class in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py.
Where is TestBasicWrapModelCall defined?
TestBasicWrapModelCall is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py at line 36.
What does TestBasicWrapModelCall extend?
TestBasicWrapModelCall extends AgentMiddleware.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free