Home / Function/ test_execution_order() — langchain Function Reference

test_execution_order() — langchain Function Reference

Architecture documentation for the test_execution_order() function in test_framework.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  44443e17_7efb_5273_2b9a_9df0ee61dd62["test_execution_order()"]
  7756726f_6234_5476_ab8e_0716a0d87ec6["TestAgentHooksCombined"]
  44443e17_7efb_5273_2b9a_9df0ee61dd62 -->|defined in| 7756726f_6234_5476_ab8e_0716a0d87ec6
  style 44443e17_7efb_5273_2b9a_9df0ee61dd62 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_framework.py lines 882–914

    async def test_execution_order(self, *, is_async: bool) -> None:
        """Test that before_agent executes before after_agent in both sync and async modes."""
        execution_log: list[str] = []

        if is_async:

            @before_agent
            async def log_before(*_args: Any, **_kwargs: Any) -> None:
                execution_log.append("before")

            @after_agent
            async def log_after(*_args: Any, **_kwargs: Any) -> None:
                execution_log.append("after")

        else:

            @before_agent
            def log_before(*_args: Any, **_kwargs: Any) -> None:
                execution_log.append("before")

            @after_agent
            def log_after(*_args: Any, **_kwargs: Any) -> None:
                execution_log.append("after")

        model = GenericFakeChatModel(messages=iter([AIMessage(content="Response")]))
        agent = create_agent(model=model, tools=[], middleware=[log_before, log_after])

        if is_async:
            await agent.ainvoke({"messages": [HumanMessage("Test")]})
        else:
            agent.invoke({"messages": [HumanMessage("Test")]})

        assert execution_log == ["before", "after"]

Domain

Subdomains

Frequently Asked Questions

What does test_execution_order() do?
test_execution_order() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_framework.py.
Where is test_execution_order() defined?
test_execution_order() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_framework.py at line 882.

Analyze Your Own Codebase

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

Try Supermodel Free