Home / Class/ TestCacheControlPreservation Class — langchain Architecture

TestCacheControlPreservation Class — langchain Architecture

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

Entity Profile

Dependency Diagram

graph TD
  e83b9bd4_7513_7e56_d488_89c31019a4f7["TestCacheControlPreservation"]
  a610b8e2_10fe_f60e_5de4_dde05dd5afb7["test_system_message.py"]
  e83b9bd4_7513_7e56_d488_89c31019a4f7 -->|defined in| a610b8e2_10fe_f60e_5de4_dde05dd5afb7
  901ab760_4cf8_464d_3c92_5054232b2bd4["test_middleware_can_add_cache_control()"]
  e83b9bd4_7513_7e56_d488_89c31019a4f7 -->|method| 901ab760_4cf8_464d_3c92_5054232b2bd4
  1d078316_5661_5b2c_8de2_591b519c1b5d["test_cache_control_preserved_across_middleware()"]
  e83b9bd4_7513_7e56_d488_89c31019a4f7 -->|method| 1d078316_5661_5b2c_8de2_591b519c1b5d

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/test_system_message.py lines 573–679

class TestCacheControlPreservation:
    """Test cache control metadata preservation in system messages."""

    def test_middleware_can_add_cache_control(self) -> None:
        """Test middleware adding cache control to system message."""

        def cache_control_middleware(
            request: ModelRequest, handler: Callable[[ModelRequest], ModelResponse]
        ) -> ModelResponse:
            """Add cache control to system message."""
            new_message = SystemMessage(
                content=[
                    {"type": "text", "text": "Base instructions"},
                    {
                        "type": "text",
                        "text": "Cached instructions",
                        "cache_control": {"type": "ephemeral"},
                    },
                ]
            )
            new_request = request.override(system_message=new_message)
            return handler(new_request)

        model = GenericFakeChatModel(messages=iter([AIMessage(content="response")]))
        request = ModelRequest(
            model=model,
            system_message=None,
            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")])

        cache_control_middleware(request, mock_handler)

        assert captured_request is not None
        assert captured_request.system_message is not None
        assert isinstance(captured_request.system_message.content_blocks, list)
        assert captured_request.system_message.content_blocks[1].get("cache_control") == {
            "type": "ephemeral"
        }

    def test_cache_control_preserved_across_middleware(self) -> None:
        """Test that cache control is preserved when middleware modifies message."""

        def first_middleware_with_cache(
            request: ModelRequest, handler: Callable[[ModelRequest], ModelResponse]
        ) -> ModelResponse:
            """Set system message with cache control."""
            new_message = SystemMessage(
                content=[
                    {
                        "type": "text",
                        "text": "Cached content",
                        "cache_control": {"type": "ephemeral"},
                    }
                ]
            )
            new_request = request.override(system_message=new_message)
            return handler(new_request)

        def second_middleware_appends(
            request: ModelRequest, handler: Callable[[ModelRequest], ModelResponse]
        ) -> ModelResponse:
            """Append to system message while preserving cache control."""
            assert request.system_message is not None
            existing_content = request.system_message.content_blocks
            new_content = [*existing_content, TextContentBlock(type="text", text="Additional text")]

            new_message = SystemMessage(content_blocks=new_content)
            new_request = request.override(system_message=new_message)
            return handler(new_request)

Frequently Asked Questions

What is the TestCacheControlPreservation class?
TestCacheControlPreservation is a class in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py.
Where is TestCacheControlPreservation defined?
TestCacheControlPreservation is defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py at line 573.

Analyze Your Own Codebase

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

Try Supermodel Free