Home / Function/ test_three_handlers_composition() — langchain Function Reference

test_three_handlers_composition() — langchain Function Reference

Architecture documentation for the test_three_handlers_composition() function in test_composition.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  46ba3d48_f353_a738_3093_4a6b90d6f03a["test_three_handlers_composition()"]
  f1e766c6_5a64_9e6c_f2a8_d41c64f6f142["TestChainModelCallHandlers"]
  46ba3d48_f353_a738_3093_4a6b90d6f03a -->|defined in| f1e766c6_5a64_9e6c_f2a8_d41c64f6f142
  3988450e_19ed_2280_0a85_e9520f7f556b["create_test_request()"]
  46ba3d48_f353_a738_3093_4a6b90d6f03a -->|calls| 3988450e_19ed_2280_0a85_e9520f7f556b
  1cdbb163_cfa8_588a_643a_640bbf32247f["create_mock_base_handler()"]
  46ba3d48_f353_a738_3093_4a6b90d6f03a -->|calls| 1cdbb163_cfa8_588a_643a_640bbf32247f
  style 46ba3d48_f353_a738_3093_4a6b90d6f03a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_composition.py lines 128–171

    def test_three_handlers_composition(self) -> None:
        """Test composition of three handlers."""
        execution_order = []

        def first(
            request: ModelRequest, handler: Callable[[ModelRequest], ModelResponse]
        ) -> ModelResponse:
            execution_order.append("first-before")
            result = handler(request)
            execution_order.append("first-after")
            return result

        def second(
            request: ModelRequest, handler: Callable[[ModelRequest], ModelResponse]
        ) -> ModelResponse:
            execution_order.append("second-before")
            result = handler(request)
            execution_order.append("second-after")
            return result

        def third(
            request: ModelRequest, handler: Callable[[ModelRequest], ModelResponse]
        ) -> ModelResponse:
            execution_order.append("third-before")
            result = handler(request)
            execution_order.append("third-after")
            return result

        composed = _chain_model_call_handlers([first, second, third])
        assert composed is not None

        result = composed(create_test_request(), create_mock_base_handler())

        # First wraps second wraps third
        assert execution_order == [
            "first-before",
            "second-before",
            "third-before",
            "third-after",
            "second-after",
            "first-after",
        ]
        assert isinstance(result, _ComposedExtendedModelResponse)
        assert result.model_response.result[0].content == "test"

Domain

Subdomains

Frequently Asked Questions

What does test_three_handlers_composition() do?
test_three_handlers_composition() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_composition.py.
Where is test_three_handlers_composition() defined?
test_three_handlers_composition() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_composition.py at line 128.
What does test_three_handlers_composition() call?
test_three_handlers_composition() calls 2 function(s): create_mock_base_handler, create_test_request.

Analyze Your Own Codebase

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

Try Supermodel Free