Home / Class/ TestBasicWrapModelCall Class — langchain Architecture

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

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