Home / Function/ test_summarization_middleware_full_workflow_async() — langchain Function Reference

test_summarization_middleware_full_workflow_async() — langchain Function Reference

Architecture documentation for the test_summarization_middleware_full_workflow_async() function in test_summarization.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  7c5eba78_3a66_627e_2877_b3d1027e0dea["test_summarization_middleware_full_workflow_async()"]
  1911a463_b67d_0301_5ef1_5c535dafc14a["test_summarization.py"]
  7c5eba78_3a66_627e_2877_b3d1027e0dea -->|defined in| 1911a463_b67d_0301_5ef1_5c535dafc14a
  c1b92040_ddc8_a816_8b38_cb1c2aa76183["_agenerate()"]
  7c5eba78_3a66_627e_2877_b3d1027e0dea -->|calls| c1b92040_ddc8_a816_8b38_cb1c2aa76183
  style 7c5eba78_3a66_627e_2877_b3d1027e0dea fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_summarization.py lines 468–527

async def test_summarization_middleware_full_workflow_async() -> None:
    """Test SummarizationMiddleware complete summarization workflow."""

    class MockModel(BaseChatModel):
        @override
        def _generate(
            self,
            messages: list[BaseMessage],
            stop: list[str] | None = None,
            run_manager: CallbackManagerForLLMRun | None = None,
            **kwargs: Any,
        ) -> ChatResult:
            return ChatResult(generations=[ChatGeneration(message=AIMessage(content="Blep"))])

        @override
        async def _agenerate(
            self,
            messages: list[BaseMessage],
            stop: list[str] | None = None,
            run_manager: AsyncCallbackManagerForLLMRun | None = None,
            **kwargs: Any,
        ) -> ChatResult:
            return ChatResult(generations=[ChatGeneration(message=AIMessage(content="Blip"))])

        @property
        def _llm_type(self) -> str:
            return "mock"

    middleware = SummarizationMiddleware(
        model=MockModel(), trigger=("tokens", 1000), keep=("messages", 2)
    )

    # Mock high token count to trigger summarization
    def mock_token_counter(_: Iterable[MessageLikeRepresentation]) -> int:
        return 1500  # Above threshold

    middleware.token_counter = mock_token_counter

    messages: list[AnyMessage] = [
        HumanMessage(content="1"),
        HumanMessage(content="2"),
        HumanMessage(content="3"),
        HumanMessage(content="4"),
        HumanMessage(content="5"),
    ]

    state = AgentState[Any](messages=messages)
    result = await middleware.abefore_model(state, Runtime())

    assert result is not None
    assert "messages" in result
    assert len(result["messages"]) > 0

    expected_types = ["remove", "human", "human", "human"]
    actual_types = [message.type for message in result["messages"]]
    assert actual_types == expected_types
    assert [message.content for message in result["messages"][2:]] == ["4", "5"]

    summary_message = result["messages"][1]
    assert "Blip" in summary_message.text

Domain

Subdomains

Calls

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free