Home / Function/ test_respects_keep_last_tool_results_async() — langchain Function Reference

test_respects_keep_last_tool_results_async() — langchain Function Reference

Architecture documentation for the test_respects_keep_last_tool_results_async() function in test_context_editing.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  8e6529c6_8d14_3dff_1070_24febd3c0eeb["test_respects_keep_last_tool_results_async()"]
  95bc2c91_0832_8fb7_f8e0_c4d613e022d3["test_context_editing.py"]
  8e6529c6_8d14_3dff_1070_24febd3c0eeb -->|defined in| 95bc2c91_0832_8fb7_f8e0_c4d613e022d3
  d0fac9a0_048c_c4bc_10f5_307a81af0095["_make_state_and_request()"]
  8e6529c6_8d14_3dff_1070_24febd3c0eeb -->|calls| d0fac9a0_048c_c4bc_10f5_307a81af0095
  style 8e6529c6_8d14_3dff_1070_24febd3c0eeb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_context_editing.py lines 365–417

async def test_respects_keep_last_tool_results_async() -> None:
    """Test async version respects keep parameter for last tool results."""
    conversation: list[AIMessage | ToolMessage] = []
    edits = [
        ("call-a", "tool-output-a" * 5),
        ("call-b", "tool-output-b" * 5),
        ("call-c", "tool-output-c" * 5),
    ]

    for call_id, text in edits:
        conversation.extend(
            (
                AIMessage(
                    content="",
                    tool_calls=[{"id": call_id, "name": "tool", "args": {"input": call_id}}],
                ),
                ToolMessage(content=text, tool_call_id=call_id),
            )
        )

    _state, request = _make_state_and_request(conversation)

    middleware = ContextEditingMiddleware(
        edits=[
            ClearToolUsesEdit(
                trigger=50,
                keep=1,
                placeholder="[cleared]",
            )
        ],
        token_count_method="model",  # noqa: S106
    )

    modified_request = None

    async def mock_handler(req: ModelRequest) -> ModelResponse:
        nonlocal modified_request
        modified_request = req
        return ModelResponse(result=[AIMessage(content="mock response")])

    # Call awrap_model_call which creates a new request with edits
    await middleware.awrap_model_call(request, mock_handler)

    assert modified_request is not None
    cleared_messages = [
        msg
        for msg in modified_request.messages
        if isinstance(msg, ToolMessage) and msg.content == "[cleared]"
    ]

    assert len(cleared_messages) == 2
    assert isinstance(modified_request.messages[-1], ToolMessage)
    assert modified_request.messages[-1].content != "[cleared]"

Domain

Subdomains

Frequently Asked Questions

What does test_respects_keep_last_tool_results_async() do?
test_respects_keep_last_tool_results_async() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_context_editing.py.
Where is test_respects_keep_last_tool_results_async() defined?
test_respects_keep_last_tool_results_async() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_context_editing.py at line 365.
What does test_respects_keep_last_tool_results_async() call?
test_respects_keep_last_tool_results_async() calls 1 function(s): _make_state_and_request.

Analyze Your Own Codebase

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

Try Supermodel Free