Home / Class/ TestModelRequestSystemMessage Class — langchain Architecture

TestModelRequestSystemMessage Class — langchain Architecture

Architecture documentation for the TestModelRequestSystemMessage class in test_system_message.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  fdcac224_4658_3042_d41f_938e751993a3["TestModelRequestSystemMessage"]
  6fa433a2_9c9f_67de_68d3_cb5b777bdb82["SystemMessage"]
  fdcac224_4658_3042_d41f_938e751993a3 -->|extends| 6fa433a2_9c9f_67de_68d3_cb5b777bdb82
  a610b8e2_10fe_f60e_5de4_dde05dd5afb7["test_system_message.py"]
  fdcac224_4658_3042_d41f_938e751993a3 -->|defined in| a610b8e2_10fe_f60e_5de4_dde05dd5afb7
  bf2c6721_d3b4_d3b7_39bf_f411898b666a["test_create_with_various_system_inputs()"]
  fdcac224_4658_3042_d41f_938e751993a3 -->|method| bf2c6721_d3b4_d3b7_39bf_f411898b666a
  57cd64d3_9304_9d2c_cb9e_bd2441c0dbbf["test_system_prompt_property_with_list_content()"]
  fdcac224_4658_3042_d41f_938e751993a3 -->|method| 57cd64d3_9304_9d2c_cb9e_bd2441c0dbbf
  39177f3d_ac44_6f9d_b3ae_62c1c0b89c73["test_override_methods()"]
  fdcac224_4658_3042_d41f_938e751993a3 -->|method| 39177f3d_ac44_6f9d_b3ae_62c1c0b89c73
  f5c844c2_ada8_3558_5008_f8bde32f259a["test_override_system_prompt_to_none()"]
  fdcac224_4658_3042_d41f_938e751993a3 -->|method| f5c844c2_ada8_3558_5008_f8bde32f259a
  6603af87_954d_6b41_fc20_1a650f2d3dc0["test_cannot_set_both_system_prompt_and_system_message()"]
  fdcac224_4658_3042_d41f_938e751993a3 -->|method| 6603af87_954d_6b41_fc20_1a650f2d3dc0
  52fd08ae_3b85_c6fd_0bd7_9ae358d6f64b["test_setattr_system_prompt_deprecated()"]
  fdcac224_4658_3042_d41f_938e751993a3 -->|method| 52fd08ae_3b85_c6fd_0bd7_9ae358d6f64b
  2e169c5e_0a77_e4bc_df83_ae66f6e194ab["test_system_message_with_complex_content()"]
  fdcac224_4658_3042_d41f_938e751993a3 -->|method| 2e169c5e_0a77_e4bc_df83_ae66f6e194ab
  8038197f_575d_3162_5f45_8616dead3bcc["test_multiple_overrides_with_system_message()"]
  fdcac224_4658_3042_d41f_938e751993a3 -->|method| 8038197f_575d_3162_5f45_8616dead3bcc

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/test_system_message.py lines 54–302

class TestModelRequestSystemMessage:
    """Test ModelRequest with system_message field."""

    @pytest.mark.parametrize(
        ("system_message", "system_prompt", "expected_msg", "expected_prompt"),
        [
            # Test with SystemMessage
            (
                SystemMessage(content="You are helpful"),
                None,
                SystemMessage(content="You are helpful"),
                "You are helpful",
            ),
            # Test with None
            (None, None, None, None),
            # Test with string (backward compat)
            (None, "You are helpful", SystemMessage(content="You are helpful"), "You are helpful"),
        ],
    )
    def test_create_with_various_system_inputs(
        self,
        system_message: SystemMessage | None,
        system_prompt: str | None,
        expected_msg: SystemMessage | None,
        expected_prompt: str | None,
    ) -> None:
        """Test creating ModelRequest with various system message inputs."""
        model = GenericFakeChatModel(messages=iter([AIMessage(content="Hello")]))

        request = ModelRequest(
            model=model,
            system_message=system_message,
            system_prompt=system_prompt,
            messages=[HumanMessage("Hi")],
            tool_choice=None,
            tools=[],
            response_format=None,
            state=AgentState(messages=[]),
            runtime=None,
        )

        if expected_msg is None:
            assert request.system_message is None
        else:
            assert request.system_message is not None
            assert request.system_message.content == expected_msg.content
        assert request.system_prompt == expected_prompt

    def test_system_prompt_property_with_list_content(self) -> None:
        """Test system_prompt property handles list content."""
        model = GenericFakeChatModel(messages=iter([AIMessage(content="Hello")]))
        system_msg = SystemMessage(content=["Part 1", "Part 2"])

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

        assert request.system_prompt is not None
        assert "Part 1" in request.system_prompt

    @pytest.mark.parametrize(
        ("override_with", "expected_text"),
        [
            ("system_message", "New"),
            ("system_prompt", "New prompt"),
        ],
    )
    def test_override_methods(self, override_with: str, expected_text: str) -> None:
        """Test override() with system_message and system_prompt parameters."""
        model = GenericFakeChatModel(messages=iter([AIMessage(content="Hello")]))
        original_msg = SystemMessage(content="Original")

        original_request = ModelRequest(
            model=model,

Extends

Frequently Asked Questions

What is the TestModelRequestSystemMessage class?
TestModelRequestSystemMessage is a class in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py.
Where is TestModelRequestSystemMessage defined?
TestModelRequestSystemMessage is defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py at line 54.
What does TestModelRequestSystemMessage extend?
TestModelRequestSystemMessage extends SystemMessage.

Analyze Your Own Codebase

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

Try Supermodel Free