test_composition.py — langchain Source File
Architecture documentation for test_composition.py, a python file in the langchain codebase. 8 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 529538f3_9470_dbd3_2a47_9e95e11a4afe["test_composition.py"] cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7["collections.abc"] 529538f3_9470_dbd3_2a47_9e95e11a4afe --> cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"] 529538f3_9470_dbd3_2a47_9e95e11a4afe --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3 d758344f_537f_649e_f467_b9d7442e86df["langchain_core.messages"] 529538f3_9470_dbd3_2a47_9e95e11a4afe --> d758344f_537f_649e_f467_b9d7442e86df 5dbfd558_f2f2_9663_3a3f_c317926ac1c1["langgraph.runtime"] 529538f3_9470_dbd3_2a47_9e95e11a4afe --> 5dbfd558_f2f2_9663_3a3f_c317926ac1c1 0e93d2ee_1fb2_3a0f_5a76_8aba32d0d4ed["langgraph.types"] 529538f3_9470_dbd3_2a47_9e95e11a4afe --> 0e93d2ee_1fb2_3a0f_5a76_8aba32d0d4ed 839143dd_e377_b604_96de_3624dbdffeb5["langchain.agents"] 529538f3_9470_dbd3_2a47_9e95e11a4afe --> 839143dd_e377_b604_96de_3624dbdffeb5 6f5e6c4b_1a3f_fd09_4697_631c27ef1033["langchain.agents.factory"] 529538f3_9470_dbd3_2a47_9e95e11a4afe --> 6f5e6c4b_1a3f_fd09_4697_631c27ef1033 50acc543_e5f0_2162_cf07_c2bf50723e0c["langchain.agents.middleware.types"] 529538f3_9470_dbd3_2a47_9e95e11a4afe --> 50acc543_e5f0_2162_cf07_c2bf50723e0c style 529538f3_9470_dbd3_2a47_9e95e11a4afe fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"""Unit tests for _chain_model_call_handlers handler composition."""
from collections.abc import Callable
from typing import Any, TypedDict, cast
from langchain_core.messages import AIMessage
from langgraph.runtime import Runtime
from langgraph.types import Command
from langchain.agents import AgentState
from langchain.agents.factory import _chain_model_call_handlers, _ComposedExtendedModelResponse
from langchain.agents.middleware.types import ExtendedModelResponse, ModelRequest, ModelResponse
def create_test_request(**kwargs: Any) -> ModelRequest:
"""Helper to create a `ModelRequest` with sensible defaults."""
defaults: dict[str, Any] = {
"messages": [],
"model": None,
"system_prompt": None,
"tool_choice": None,
"tools": [],
"response_format": None,
"state": {},
"runtime": cast("Runtime", object()),
}
defaults.update(kwargs)
return ModelRequest(**defaults)
def create_mock_base_handler(content: str = "test") -> Callable[[ModelRequest], ModelResponse]:
"""Helper to create a base handler that returns `ModelResponse`."""
def mock_base_handler(req: ModelRequest) -> ModelResponse:
return ModelResponse(result=[AIMessage(content=content)], structured_response=None)
return mock_base_handler
class TestChainModelCallHandlers:
"""Test the `_chain_model_call_handlers` composition function."""
def test_empty_handlers_returns_none(self) -> None:
"""Test that empty handlers list returns None."""
result = _chain_model_call_handlers([])
assert result is None
def test_single_handler_returns_unchanged(self) -> None:
"""Test that single handler is wrapped to normalize output."""
def handler(
request: ModelRequest, base_handler: Callable[[ModelRequest], ModelResponse]
) -> ModelResponse:
return base_handler(request)
result = _chain_model_call_handlers([handler])
# Result is wrapped to normalize, so it won't be identical
assert result is not None
assert callable(result)
// ... (290 more lines)
Domain
Subdomains
Dependencies
- collections.abc
- langchain.agents
- langchain.agents.factory
- langchain.agents.middleware.types
- langchain_core.messages
- langgraph.runtime
- langgraph.types
- typing
Source
Frequently Asked Questions
What does test_composition.py do?
test_composition.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, Serialization subdomain.
What functions are defined in test_composition.py?
test_composition.py defines 2 function(s): create_mock_base_handler, create_test_request.
What does test_composition.py depend on?
test_composition.py imports 8 module(s): collections.abc, langchain.agents, langchain.agents.factory, langchain.agents.middleware.types, langchain_core.messages, langgraph.runtime, langgraph.types, typing.
Where is test_composition.py in the architecture?
test_composition.py is located at libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_composition.py (domain: CoreAbstractions, subdomain: Serialization, directory: libs/langchain_v1/tests/unit_tests/agents/middleware/core).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free