Home / Function/ test_decorator_mixed_with_class_middleware() — langchain Function Reference

test_decorator_mixed_with_class_middleware() — langchain Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  43cb0644_2975_1a7e_bb9d_8455df9733e8["test_decorator_mixed_with_class_middleware()"]
  5a3c6db0_0302_046a_d217_22fb3d4e632e["TestWrapModelCallDecorator"]
  43cb0644_2975_1a7e_bb9d_8455df9733e8 -->|defined in| 5a3c6db0_0302_046a_d217_22fb3d4e632e
  style 43cb0644_2975_1a7e_bb9d_8455df9733e8 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 1262–1301

    def test_decorator_mixed_with_class_middleware(self) -> None:
        """Test decorated middleware mixed with class-based middleware."""
        execution_order = []

        @wrap_model_call
        def decorated_middleware(
            request: ModelRequest,
            handler: Callable[[ModelRequest], ModelResponse],
        ) -> ModelCallResult:
            execution_order.append("decorated-before")
            result = handler(request)
            execution_order.append("decorated-after")
            return result

        class ClassMiddleware(AgentMiddleware):
            def wrap_model_call(
                self,
                request: ModelRequest,
                handler: Callable[[ModelRequest], ModelResponse],
            ) -> ModelCallResult:
                execution_order.append("class-before")
                result = handler(request)
                execution_order.append("class-after")
                return result

        model = GenericFakeChatModel(messages=iter([AIMessage(content="Response")]))
        agent = create_agent(
            model=model,
            middleware=[decorated_middleware, ClassMiddleware()],
        )

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

        # Decorated is outer, class-based is inner
        assert execution_order == [
            "decorated-before",
            "class-before",
            "class-after",
            "decorated-after",
        ]

Domain

Subdomains

Frequently Asked Questions

What does test_decorator_mixed_with_class_middleware() do?
test_decorator_mixed_with_class_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_decorator_mixed_with_class_middleware() defined?
test_decorator_mixed_with_class_middleware() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py at line 1262.

Analyze Your Own Codebase

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

Try Supermodel Free