TestSystemMessageHandling Class — langchain Architecture
Architecture documentation for the TestSystemMessageHandling class in test_anthropic_tools.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD ba56b04d_d9f3_fb70_3b66_9b0ee09cb319["TestSystemMessageHandling"] 6fa433a2_9c9f_67de_68d3_cb5b777bdb82["SystemMessage"] ba56b04d_d9f3_fb70_3b66_9b0ee09cb319 -->|extends| 6fa433a2_9c9f_67de_68d3_cb5b777bdb82 ed6269fc_1a0e_6b64_f39f_7fdd1e5bcdc1["test_anthropic_tools.py"] ba56b04d_d9f3_fb70_3b66_9b0ee09cb319 -->|defined in| ed6269fc_1a0e_6b64_f39f_7fdd1e5bcdc1 be6fe8c1_dab8_3063_66f2_9c6dc6b4c86d["test_text_editor_no_system_message()"] ba56b04d_d9f3_fb70_3b66_9b0ee09cb319 -->|method| be6fe8c1_dab8_3063_66f2_9c6dc6b4c86d 1678632a_3451_63d8_ed6e_51ef9f13f977["test_memory_middleware_adds_system_message()"] ba56b04d_d9f3_fb70_3b66_9b0ee09cb319 -->|method| 1678632a_3451_63d8_ed6e_51ef9f13f977 77ebc9ff_806c_cd00_03c5_3d8dac3d4c79["test_memory_middleware_merges_system_message()"] ba56b04d_d9f3_fb70_3b66_9b0ee09cb319 -->|method| 77ebc9ff_806c_cd00_03c5_3d8dac3d4c79 3034a6a3_df9f_e3ac_5766_7f19305d5fb0["test_async_memory_middleware_merges_system_message()"] ba56b04d_d9f3_fb70_3b66_9b0ee09cb319 -->|method| 3034a6a3_df9f_e3ac_5766_7f19305d5fb0 136ebc57_5733_fae2_4e58_487c8404c654["test_custom_system_prompt_merges_correctly()"] ba56b04d_d9f3_fb70_3b66_9b0ee09cb319 -->|method| 136ebc57_5733_fae2_4e58_487c8404c654
Relationship Graph
Source Code
libs/partners/anthropic/tests/unit_tests/middleware/test_anthropic_tools.py lines 286–451
class TestSystemMessageHandling:
"""Test system message handling in wrap_model_call."""
def test_text_editor_no_system_message(self) -> None:
"""Test text editor middleware without system message."""
from langchain.agents.middleware.types import ModelRequest
middleware = StateClaudeTextEditorMiddleware()
request = ModelRequest(
model=MagicMock(),
messages=[],
system_message=None,
tool_choice=None,
tools=[],
response_format=None,
state={"messages": []},
runtime=MagicMock(),
)
captured_request = None
def handler(req: ModelRequest) -> MagicMock:
nonlocal captured_request
captured_request = req
return MagicMock()
middleware.wrap_model_call(request, handler)
# No system message should be added for text editor
assert captured_request is not None
assert captured_request.system_message is None
def test_memory_middleware_adds_system_message(self) -> None:
"""Test memory middleware adds system message when none exists."""
from langchain.agents.middleware.types import ModelRequest
middleware = StateClaudeMemoryMiddleware()
request = ModelRequest(
model=MagicMock(),
messages=[],
system_message=None,
tool_choice=None,
tools=[],
response_format=None,
state={"messages": []},
runtime=MagicMock(),
)
captured_request = None
def handler(req: ModelRequest) -> MagicMock:
nonlocal captured_request
captured_request = req
return MagicMock()
middleware.wrap_model_call(request, handler)
# System message should be added
assert captured_request is not None
assert captured_request.system_message is not None
assert isinstance(captured_request.system_message, SystemMessage)
assert "MEMORY PROTOCOL" in captured_request.system_message.text
def test_memory_middleware_merges_system_message(self) -> None:
"""Test memory middleware merges with existing system message."""
from langchain.agents.middleware.types import ModelRequest
middleware = StateClaudeMemoryMiddleware()
existing_message = SystemMessage("You are a helpful assistant.")
request = ModelRequest(
model=MagicMock(),
messages=[],
system_message=existing_message,
tool_choice=None,
tools=[],
response_format=None,
state={"messages": []},
runtime=MagicMock(),
Extends
Source
Frequently Asked Questions
What is the TestSystemMessageHandling class?
TestSystemMessageHandling is a class in the langchain codebase, defined in libs/partners/anthropic/tests/unit_tests/middleware/test_anthropic_tools.py.
Where is TestSystemMessageHandling defined?
TestSystemMessageHandling is defined in libs/partners/anthropic/tests/unit_tests/middleware/test_anthropic_tools.py at line 286.
What does TestSystemMessageHandling extend?
TestSystemMessageHandling extends SystemMessage.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free