Home / File/ test_framework.py — langchain Source File

test_framework.py — langchain Source File

Architecture documentation for test_framework.py, a python file in the langchain codebase. 19 imports, 0 dependents.

File python CoreAbstractions RunnableInterface 19 imports 17 functions 20 classes

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)

Subdomains

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

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