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
Source
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