Home / Function/ test_simple_retry_on_error() — langchain Function Reference

test_simple_retry_on_error() — langchain Function Reference

Architecture documentation for the test_simple_retry_on_error() function in test_wrap_model_call.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  ae450ab7_5748_619d_f94d_1695b7403730["test_simple_retry_on_error()"]
  1c3bae87_d793_bb0b_1a39_594b67feb9d4["TestRetryLogic"]
  ae450ab7_5748_619d_f94d_1695b7403730 -->|defined in| 1c3bae87_d793_bb0b_1a39_594b67feb9d4
  style ae450ab7_5748_619d_f94d_1695b7403730 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py lines 109–151

    def test_simple_retry_on_error(self) -> None:
        """Test middleware that retries once on error."""
        call_count = {"value": 0}

        class FailOnceThenSucceed(GenericFakeChatModel):
            @override
            def _generate(
                self,
                messages: list[BaseMessage],
                stop: list[str] | None = None,
                run_manager: CallbackManagerForLLMRun | None = None,
                **kwargs: Any,
            ) -> ChatResult:
                call_count["value"] += 1
                if call_count["value"] == 1:
                    msg = "First call fails"
                    raise ValueError(msg)
                return super()._generate(messages, **kwargs)

        class RetryOnceMiddleware(AgentMiddleware):
            def __init__(self) -> None:
                super().__init__()
                self.retry_count = 0

            def wrap_model_call(
                self,
                request: ModelRequest,
                handler: Callable[[ModelRequest], ModelResponse],
            ) -> ModelCallResult:
                try:
                    return handler(request)
                except Exception:
                    self.retry_count += 1
                    return handler(request)

        retry_middleware = RetryOnceMiddleware()
        model = FailOnceThenSucceed(messages=iter([AIMessage(content="Success")]))
        agent = create_agent(model=model, middleware=[retry_middleware])

        result = agent.invoke({"messages": [HumanMessage("Test")]})

        assert retry_middleware.retry_count == 1
        assert result["messages"][1].content == "Success"

Domain

Subdomains

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free