Home / Function/ test_sync_invoke_with_mixed_middleware() — langchain Function Reference

test_sync_invoke_with_mixed_middleware() — langchain Function Reference

Architecture documentation for the test_sync_invoke_with_mixed_middleware() function in test_wrap_model_call.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  a19c0a5c_ca2b_3869_ab7a_70d066eca849["test_sync_invoke_with_mixed_middleware()"]
  78211736_7c97_19d0_14c2_d2b492c194dd["TestSyncAsyncInterop"]
  a19c0a5c_ca2b_3869_ab7a_70d066eca849 -->|defined in| 78211736_7c97_19d0_14c2_d2b492c194dd
  8f5d866e_cfd6_528f_2636_be74f4ef1e28["before_model()"]
  a19c0a5c_ca2b_3869_ab7a_70d066eca849 -->|calls| 8f5d866e_cfd6_528f_2636_be74f4ef1e28
  57eb737e_c465_44cb_0f93_a9f298204d77["abefore_model()"]
  a19c0a5c_ca2b_3869_ab7a_70d066eca849 -->|calls| 57eb737e_c465_44cb_0f93_a9f298204d77
  8b14d6df_29e1_d984_6a2a_6e2bb0e2e4b2["awrap_model_call()"]
  a19c0a5c_ca2b_3869_ab7a_70d066eca849 -->|calls| 8b14d6df_29e1_d984_6a2a_6e2bb0e2e4b2
  style a19c0a5c_ca2b_3869_ab7a_70d066eca849 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 1490–1532

    def test_sync_invoke_with_mixed_middleware(self) -> None:
        """Test that sync invoke works with mixed sync/async middleware when sync versions exist."""
        calls = []

        class MixedMiddleware(AgentMiddleware):
            @override
            def before_model(self, state: AgentState[Any], runtime: Runtime[Any]) -> None:
                calls.append("MixedMiddleware.before_model")

            @override
            async def abefore_model(self, state: AgentState[Any], runtime: Runtime[Any]) -> None:
                calls.append("MixedMiddleware.abefore_model")

            def wrap_model_call(
                self,
                request: ModelRequest,
                handler: Callable[[ModelRequest], ModelResponse],
            ) -> ModelCallResult:
                calls.append("MixedMiddleware.wrap_model_call")
                return handler(request)

            async def awrap_model_call(
                self,
                request: ModelRequest,
                handler: Callable[[ModelRequest], Awaitable[ModelResponse]],
            ) -> ModelCallResult:
                calls.append("MixedMiddleware.awrap_model_call")
                return await handler(request)

        agent = create_agent(
            model=FakeToolCallingModel(),
            tools=[],
            system_prompt="You are a helpful assistant.",
            middleware=[MixedMiddleware()],
        )

        agent.invoke({"messages": [HumanMessage("hello")]})

        # In sync mode, only sync methods should be called
        assert calls == [
            "MixedMiddleware.before_model",
            "MixedMiddleware.wrap_model_call",
        ]

Domain

Subdomains

Frequently Asked Questions

What does test_sync_invoke_with_mixed_middleware() do?
test_sync_invoke_with_mixed_middleware() 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_sync_invoke_with_mixed_middleware() defined?
test_sync_invoke_with_mixed_middleware() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py at line 1490.
What does test_sync_invoke_with_mixed_middleware() call?
test_sync_invoke_with_mixed_middleware() calls 3 function(s): abefore_model, awrap_model_call, before_model.

Analyze Your Own Codebase

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

Try Supermodel Free