Home / File/ test_overrides.py — langchain Source File

test_overrides.py — langchain Source File

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

File python LangChainCore ApiManagement 8 imports 3 classes

Entity Profile

Dependency Diagram

graph LR
  ee49be32_a4ff_96ee_e234_5e8fd8a9500d["test_overrides.py"]
  feec1ec4_6917_867b_d228_b134d0ff8099["typing"]
  ee49be32_a4ff_96ee_e234_5e8fd8a9500d --> feec1ec4_6917_867b_d228_b134d0ff8099
  23cb242e_1754_041d_200a_553fcb8abe1b["unittest.mock"]
  ee49be32_a4ff_96ee_e234_5e8fd8a9500d --> 23cb242e_1754_041d_200a_553fcb8abe1b
  f69d6389_263d_68a4_7fbf_f14c0602a9ba["pytest"]
  ee49be32_a4ff_96ee_e234_5e8fd8a9500d --> f69d6389_263d_68a4_7fbf_f14c0602a9ba
  00fc047e_6208_0289_ebf0_f5b91b72ee90["langchain_core.language_models.fake_chat_models"]
  ee49be32_a4ff_96ee_e234_5e8fd8a9500d --> 00fc047e_6208_0289_ebf0_f5b91b72ee90
  9444498b_8066_55c7_b3a2_1d90c4162a32["langchain_core.messages"]
  ee49be32_a4ff_96ee_e234_5e8fd8a9500d --> 9444498b_8066_55c7_b3a2_1d90c4162a32
  121262a1_0bd6_d637_bce3_307ab6b3ecd4["langchain_core.tools"]
  ee49be32_a4ff_96ee_e234_5e8fd8a9500d --> 121262a1_0bd6_d637_bce3_307ab6b3ecd4
  d9a6942a_c37a_07f8_ed13_74d0fdc117be["langchain.agents"]
  ee49be32_a4ff_96ee_e234_5e8fd8a9500d --> d9a6942a_c37a_07f8_ed13_74d0fdc117be
  a681398d_ed44_c914_1a44_5d174223b069["langchain.agents.middleware.types"]
  ee49be32_a4ff_96ee_e234_5e8fd8a9500d --> a681398d_ed44_c914_1a44_5d174223b069
  style ee49be32_a4ff_96ee_e234_5e8fd8a9500d fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Unit tests for override() methods on ModelRequest and ToolCallRequest."""

from typing import Any
from unittest.mock import Mock

import pytest
from langchain_core.language_models.fake_chat_models import GenericFakeChatModel
from langchain_core.messages import (
    AIMessage,
    AnyMessage,
    HumanMessage,
    SystemMessage,
    ToolCall,
)
from langchain_core.tools import tool

from langchain.agents import AgentState
from langchain.agents.middleware.types import ModelRequest, ToolCallRequest


class TestModelRequestOverride:
    """Test the ModelRequest.override() method."""

    def test_override_single_attribute(self) -> None:
        """Test overriding a single attribute."""
        model = GenericFakeChatModel(messages=iter([AIMessage(content="Hello")]))
        original_request = ModelRequest(
            model=model,
            system_message=SystemMessage("Original prompt"),
            messages=[HumanMessage("Hi")],
            tool_choice=None,
            tools=[],
            response_format=None,
            state=AgentState(messages=[]),
            runtime=None,
        )

        new_request = original_request.override(system_message=SystemMessage("New prompt"))

        # New request should have the overridden value
        assert new_request.system_prompt == "New prompt"
        # Original request should be unchanged (immutability)
        assert original_request.system_prompt == "Original prompt"
        # Other attributes should be the same
        assert new_request.model == original_request.model
        assert new_request.messages == original_request.messages

    def test_override_multiple_attributes(self) -> None:
        """Test overriding multiple attributes at once."""

        class CustomState(AgentState[Any]):
            count: int

        model = GenericFakeChatModel(messages=iter([AIMessage(content="Hello")]))
        original_request = ModelRequest(
            model=model,
            system_message=SystemMessage("Original prompt"),
            messages=[HumanMessage("Hi")],
            tool_choice=None,
            tools=[],
// ... (383 more lines)

Domain

Subdomains

Dependencies

  • langchain.agents
  • langchain.agents.middleware.types
  • langchain_core.language_models.fake_chat_models
  • langchain_core.messages
  • langchain_core.tools
  • pytest
  • typing
  • unittest.mock

Frequently Asked Questions

What does test_overrides.py do?
test_overrides.py is a source file in the langchain codebase, written in python. It belongs to the LangChainCore domain, ApiManagement subdomain.
What does test_overrides.py depend on?
test_overrides.py imports 8 module(s): langchain.agents, langchain.agents.middleware.types, langchain_core.language_models.fake_chat_models, langchain_core.messages, langchain_core.tools, pytest, typing, unittest.mock.
Where is test_overrides.py in the architecture?
test_overrides.py is located at libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_overrides.py (domain: LangChainCore, subdomain: ApiManagement, 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