Home / Function/ test_tool_runtime_with_middleware() — langchain Function Reference

test_tool_runtime_with_middleware() — langchain Function Reference

Architecture documentation for the test_tool_runtime_with_middleware() function in test_injected_runtime_create_agent.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  d22a3b62_c720_71e5_3b39_91b2c6093b93["test_tool_runtime_with_middleware()"]
  a4d83fe9_0a39_5761_b1a5_de54f81974c9["test_injected_runtime_create_agent.py"]
  d22a3b62_c720_71e5_3b39_91b2c6093b93 -->|defined in| a4d83fe9_0a39_5761_b1a5_de54f81974c9
  a7926c87_146a_18d7_fbc4_3911991d3131["before_model()"]
  d22a3b62_c720_71e5_3b39_91b2c6093b93 -->|calls| a7926c87_146a_18d7_fbc4_3911991d3131
  e50fdb36_ee70_53c9_2dea_eac2952227d3["after_model()"]
  d22a3b62_c720_71e5_3b39_91b2c6093b93 -->|calls| e50fdb36_ee70_53c9_2dea_eac2952227d3
  style d22a3b62_c720_71e5_3b39_91b2c6093b93 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/test_injected_runtime_create_agent.py lines 464–509

def test_tool_runtime_with_middleware() -> None:
    """Test ToolRuntime injection works with agent middleware."""
    middleware_calls = []
    runtime_calls = []

    class TestMiddleware(AgentMiddleware):
        def before_model(self, state: AgentState[Any], runtime: Runtime) -> dict[str, Any]:
            middleware_calls.append("before_model")
            return {}

        def after_model(self, state: AgentState[Any], runtime: Runtime) -> dict[str, Any]:
            middleware_calls.append("after_model")
            return {}

    @tool
    def middleware_tool(x: int, runtime: ToolRuntime) -> str:
        """Tool with runtime in middleware agent."""
        runtime_calls.append(("middleware_tool", runtime.tool_call_id))
        return f"Middleware result: {x}"

    agent = create_agent(
        model=FakeToolCallingModel(
            tool_calls=[
                [{"args": {"x": 7}, "id": "mw_call", "name": "middleware_tool"}],
                [],
            ]
        ),
        tools=[middleware_tool],
        system_prompt="You are a helpful assistant.",
        middleware=[TestMiddleware()],
    )

    result = agent.invoke({"messages": [HumanMessage("Test with middleware")]})

    # Verify middleware ran
    assert "before_model" in middleware_calls
    assert "after_model" in middleware_calls

    # Verify tool with runtime executed
    assert len(runtime_calls) == 1
    assert runtime_calls[0] == ("middleware_tool", "mw_call")

    # Verify result
    tool_message = result["messages"][2]
    assert isinstance(tool_message, ToolMessage)
    assert tool_message.content == "Middleware result: 7"

Domain

Subdomains

Frequently Asked Questions

What does test_tool_runtime_with_middleware() do?
test_tool_runtime_with_middleware() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/test_injected_runtime_create_agent.py.
Where is test_tool_runtime_with_middleware() defined?
test_tool_runtime_with_middleware() is defined in libs/langchain_v1/tests/unit_tests/agents/test_injected_runtime_create_agent.py at line 464.
What does test_tool_runtime_with_middleware() call?
test_tool_runtime_with_middleware() calls 2 function(s): after_model, before_model.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free