test_framework.py — langchain Source File
Architecture documentation for test_framework.py, a python file in the langchain codebase. 19 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 9366bb4a_7d54_c202_6663_940d5aa01281["test_framework.py"] d76a28c2_c3ab_00a8_5208_77807a49449d["sys"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> d76a28c2_c3ab_00a8_5208_77807a49449d cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7["collections.abc"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3 120e2591_3e15_b895_72b6_cb26195e40a6["pytest"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> 120e2591_3e15_b895_72b6_cb26195e40a6 ba43b74d_3099_7e1c_aac3_cf594720469e["langchain_core.language_models"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> ba43b74d_3099_7e1c_aac3_cf594720469e d758344f_537f_649e_f467_b9d7442e86df["langchain_core.messages"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> d758344f_537f_649e_f467_b9d7442e86df 43d88577_548b_2248_b01b_7987bae85dcc["langchain_core.tools"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> 43d88577_548b_2248_b01b_7987bae85dcc a5d674cf_862b_eae9_6b2e_b70979c7b381["langgraph.checkpoint.base"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> a5d674cf_862b_eae9_6b2e_b70979c7b381 1fe3d0c5_4963_3c08_63e9_108cefcdbab5["langgraph.checkpoint.memory"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> 1fe3d0c5_4963_3c08_63e9_108cefcdbab5 5dbfd558_f2f2_9663_3a3f_c317926ac1c1["langgraph.runtime"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> 5dbfd558_f2f2_9663_3a3f_c317926ac1c1 6e58aaea_f08e_c099_3cc7_f9567bfb1ae7["pydantic"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> 6e58aaea_f08e_c099_3cc7_f9567bfb1ae7 66d6194f_d8c1_55b6_f522_311fdad57877["syrupy.assertion"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> 66d6194f_d8c1_55b6_f522_311fdad57877 91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> 91721f45_4909_e489_8c1f_084f8bd87145 6f5e6c4b_1a3f_fd09_4697_631c27ef1033["langchain.agents.factory"] 9366bb4a_7d54_c202_6663_940d5aa01281 --> 6f5e6c4b_1a3f_fd09_4697_631c27ef1033 style 9366bb4a_7d54_c202_6663_940d5aa01281 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import sys
from collections.abc import Awaitable, Callable
from typing import Annotated, Any, Generic
import pytest
from langchain_core.language_models import GenericFakeChatModel
from langchain_core.messages import AIMessage, HumanMessage, ToolCall, ToolMessage
from langchain_core.tools import InjectedToolCallId, tool
from langgraph.checkpoint.base import BaseCheckpointSaver
from langgraph.checkpoint.memory import InMemorySaver
from langgraph.runtime import Runtime
from pydantic import BaseModel, Field
from syrupy.assertion import SnapshotAssertion
from typing_extensions import override
from langchain.agents.factory import create_agent
from langchain.agents.middleware.types import (
AgentMiddleware,
AgentState,
ModelCallResult,
ModelRequest,
ModelResponse,
OmitFromInput,
OmitFromOutput,
PrivateStateAttr,
ResponseT,
after_agent,
after_model,
before_agent,
before_model,
hook_config,
)
from langchain.agents.structured_output import ToolStrategy
from langchain.tools import InjectedState
from tests.unit_tests.agents.messages import _AnyIdHumanMessage, _AnyIdToolMessage
from tests.unit_tests.agents.model import FakeToolCallingModel
def test_create_agent_invoke(
snapshot: SnapshotAssertion,
sync_checkpointer: BaseCheckpointSaver[str],
) -> None:
calls = []
class NoopSeven(AgentMiddleware):
def before_model(self, state: AgentState[Any], runtime: Runtime) -> None:
calls.append("NoopSeven.before_model")
def wrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelCallResult:
calls.append("NoopSeven.wrap_model_call")
return handler(request)
def after_model(self, state: AgentState[Any], runtime: Runtime) -> None:
calls.append("NoopSeven.after_model")
class NoopEight(AgentMiddleware):
// ... (982 more lines)
Domain
Subdomains
Functions
- test_agent_graph_with_jump_to_end_as_after_agent()
- test_create_agent_async_invoke()
- test_create_agent_async_invoke_multiple_middleware()
- test_create_agent_async_jump()
- test_create_agent_invoke()
- test_create_agent_jump()
- test_create_agent_mixed_sync_async_middleware_async_invoke()
- test_create_agent_sync_invoke_with_mixed_middleware()
- test_create_agent_sync_invoke_with_only_async_middleware_raises_error()
- test_injected_state_in_middleware_agent()
- test_jump_to_is_ephemeral()
- test_on_model_call()
- test_public_private_state_for_custom_middleware()
- test_runtime_injected_into_middleware()
- test_simple_agent_graph()
- test_state_tool()
- test_tools_to_model_edge_with_structured_and_regular_tool_calls()
Classes
- AsyncCustomMiddleware
- AsyncMiddleware
- AsyncMiddlewareOne
- AsyncMiddlewareTwo
- AsyncOnlyMiddleware
- CustomMiddleware
- CustomState
- FakeModelWithBothToolCalls
- MixedMiddleware
- ModifyMiddleware
- MostlySyncMiddleware
- MyMiddleware
- NoopEight
- NoopOne
- NoopSeven
- NoopTwo
- NoopZero
- TestAgentHooksCombined
- TestAgentMiddlewareHooks
- WeatherResponse
Dependencies
- collections.abc
- langchain.agents.factory
- langchain.agents.middleware.types
- langchain.agents.structured_output
- langchain.tools
- langchain_core.language_models
- langchain_core.messages
- langchain_core.tools
- langgraph.checkpoint.base
- langgraph.checkpoint.memory
- langgraph.runtime
- pydantic
- pytest
- syrupy.assertion
- sys
- tests.unit_tests.agents.messages
- tests.unit_tests.agents.model
- typing
- typing_extensions
Source
Frequently Asked Questions
What does test_framework.py do?
test_framework.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, RunnableInterface subdomain.
What functions are defined in test_framework.py?
test_framework.py defines 17 function(s): test_agent_graph_with_jump_to_end_as_after_agent, test_create_agent_async_invoke, test_create_agent_async_invoke_multiple_middleware, test_create_agent_async_jump, test_create_agent_invoke, test_create_agent_jump, test_create_agent_mixed_sync_async_middleware_async_invoke, test_create_agent_sync_invoke_with_mixed_middleware, test_create_agent_sync_invoke_with_only_async_middleware_raises_error, test_injected_state_in_middleware_agent, and 7 more.
What does test_framework.py depend on?
test_framework.py imports 19 module(s): collections.abc, langchain.agents.factory, langchain.agents.middleware.types, langchain.agents.structured_output, langchain.tools, langchain_core.language_models, langchain_core.messages, langchain_core.tools, and 11 more.
Where is test_framework.py in the architecture?
test_framework.py is located at libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_framework.py (domain: CoreAbstractions, subdomain: RunnableInterface, 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