TestMetadataMerging Class — langchain Architecture
Architecture documentation for the TestMetadataMerging class in test_system_message.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD a2f43596_585a_4611_17e0_6f5fc04de10e["TestMetadataMerging"] a610b8e2_10fe_f60e_5de4_dde05dd5afb7["test_system_message.py"] a2f43596_585a_4611_17e0_6f5fc04de10e -->|defined in| a610b8e2_10fe_f60e_5de4_dde05dd5afb7 b147dfe9_98ea_072b_8a74_30764c113724["test_metadata_merge_across_updates()"] a2f43596_585a_4611_17e0_6f5fc04de10e -->|method| b147dfe9_98ea_072b_8a74_30764c113724
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/test_system_message.py lines 682–752
class TestMetadataMerging:
"""Test metadata merging behavior when updating system messages."""
@pytest.mark.parametrize(
("metadata_type", "initial_metadata", "update_metadata", "expected_result"),
[
# additional_kwargs merging
(
"additional_kwargs",
{"key1": "value1", "shared": "original"},
{"key2": "value2", "shared": "updated"},
{"key1": "value1", "key2": "value2", "shared": "updated"},
),
# response_metadata merging
(
"response_metadata",
{"model": "gpt-4", "region": "us-east"},
{"tokens": 100, "region": "eu-west"},
{"model": "gpt-4", "tokens": 100, "region": "eu-west"},
),
],
ids=["additional_kwargs", "response_metadata"],
)
def test_metadata_merge_across_updates(
self,
metadata_type: str,
initial_metadata: dict[str, Any],
update_metadata: dict[str, Any],
expected_result: dict[str, Any],
) -> None:
"""Test that metadata merges correctly when updating system message."""
base_message = SystemMessage(
content="Base",
**{metadata_type: initial_metadata},
)
def update_middleware(
request: ModelRequest, handler: Callable[[ModelRequest], ModelResponse]
) -> ModelResponse:
"""Update system message, merging metadata."""
current_metadata = getattr(request.system_message, metadata_type)
new_metadata = {**current_metadata, **update_metadata}
new_request = request.override(
system_message=SystemMessage(content="Updated", **{metadata_type: new_metadata})
)
return handler(new_request)
model = GenericFakeChatModel(messages=iter([AIMessage(content="response")]))
request = ModelRequest(
model=model,
system_message=base_message,
messages=[],
tool_choice=None,
tools=[],
response_format=None,
state=AgentState(messages=[]),
runtime=Runtime(),
)
captured_request = None
def mock_handler(req: ModelRequest) -> ModelResponse:
nonlocal captured_request
captured_request = req
return ModelResponse(result=[AIMessage(content="response")])
update_middleware(request, mock_handler)
assert captured_request is not None
assert getattr(captured_request.system_message, metadata_type) == expected_result
Source
Frequently Asked Questions
What is the TestMetadataMerging class?
TestMetadataMerging is a class in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py.
Where is TestMetadataMerging defined?
TestMetadataMerging is defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py at line 682.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free