Home / Class/ TestModelRequestOverride Class — langchain Architecture

TestModelRequestOverride Class — langchain Architecture

Architecture documentation for the TestModelRequestOverride class in test_overrides.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  5e5133af_311a_09ab_c36c_5325b6843847["TestModelRequestOverride"]
  6fa433a2_9c9f_67de_68d3_cb5b777bdb82["SystemMessage"]
  5e5133af_311a_09ab_c36c_5325b6843847 -->|extends| 6fa433a2_9c9f_67de_68d3_cb5b777bdb82
  ee49be32_a4ff_96ee_e234_5e8fd8a9500d["test_overrides.py"]
  5e5133af_311a_09ab_c36c_5325b6843847 -->|defined in| ee49be32_a4ff_96ee_e234_5e8fd8a9500d
  8fcb3ac8_0ca3_4b79_0913_d9434ad9bfbc["test_override_single_attribute()"]
  5e5133af_311a_09ab_c36c_5325b6843847 -->|method| 8fcb3ac8_0ca3_4b79_0913_d9434ad9bfbc
  57c861ce_f505_72a1_bf1b_8746decd06c5["test_override_multiple_attributes()"]
  5e5133af_311a_09ab_c36c_5325b6843847 -->|method| 57c861ce_f505_72a1_bf1b_8746decd06c5
  8dc43361_95ae_0d75_8bfb_49542eb0196f["test_override_messages()"]
  5e5133af_311a_09ab_c36c_5325b6843847 -->|method| 8dc43361_95ae_0d75_8bfb_49542eb0196f
  70032d20_a199_7b11_fa7b_4eb6d274aa28["test_override_model_settings()"]
  5e5133af_311a_09ab_c36c_5325b6843847 -->|method| 70032d20_a199_7b11_fa7b_4eb6d274aa28
  5a8ef67e_52fc_b588_a065_bb77b618f280["test_override_with_none_value()"]
  5e5133af_311a_09ab_c36c_5325b6843847 -->|method| 5a8ef67e_52fc_b588_a065_bb77b618f280
  23f0a0fc_1a3a_a740_8cb9_f3f7eda66ec6["test_override_preserves_identity_of_unchanged_objects()"]
  5e5133af_311a_09ab_c36c_5325b6843847 -->|method| 23f0a0fc_1a3a_a740_8cb9_f3f7eda66ec6
  39bbc653_91cd_e08e_7a06_f48040e3833e["test_override_chaining()"]
  5e5133af_311a_09ab_c36c_5325b6843847 -->|method| 39bbc653_91cd_e08e_7a06_f48040e3833e
  1322741f_00ca_5ead_218e_d750511964fd["test_override_raises_on_both_system_prompt_and_system_message()"]
  5e5133af_311a_09ab_c36c_5325b6843847 -->|method| 1322741f_00ca_5ead_218e_d750511964fd
  6a6888fe_f32b_9e63_9cdf_a98611cb16d8["test_override_system_prompt_backward_compatibility()"]
  5e5133af_311a_09ab_c36c_5325b6843847 -->|method| 6a6888fe_f32b_9e63_9cdf_a98611cb16d8

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_overrides.py lines 21–253

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=[],
            response_format=None,
            state=CustomState(messages=[], count=1),
            runtime=None,
        )

        new_request = original_request.override(
            system_message=SystemMessage("New prompt"),
            tool_choice="auto",
            state=CustomState(messages=[], count=2),
        )

        # Overridden values should be changed
        assert new_request.system_prompt == "New prompt"
        assert new_request.tool_choice == "auto"
        assert new_request.state == CustomState(messages=[], count=2)
        # Original should be unchanged
        assert original_request.system_prompt == "Original prompt"
        assert original_request.tool_choice is None
        assert original_request.state == CustomState(messages=[], count=1)

    def test_override_messages(self) -> None:
        """Test overriding messages list."""
        model = GenericFakeChatModel(messages=iter([AIMessage(content="Hello")]))
        original_messages: list[AnyMessage] = [HumanMessage("Hi")]
        new_messages: list[AnyMessage] = [HumanMessage("Hello"), AIMessage("Hi there")]

        original_request = ModelRequest(
            model=model,
            system_message=None,
            messages=original_messages,
            tool_choice=None,
            tools=[],
            response_format=None,
            state=AgentState(messages=[]),
            runtime=None,
        )

        new_request = original_request.override(messages=new_messages)

        assert new_request.messages == new_messages
        assert original_request.messages == original_messages

Extends

Frequently Asked Questions

What is the TestModelRequestOverride class?
TestModelRequestOverride is a class in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_overrides.py.
Where is TestModelRequestOverride defined?
TestModelRequestOverride is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_overrides.py at line 21.
What does TestModelRequestOverride extend?
TestModelRequestOverride extends SystemMessage.

Analyze Your Own Codebase

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

Try Supermodel Free