Home / Function/ test_model_fallback_middleware_exhausted_with_agent() — langchain Function Reference

test_model_fallback_middleware_exhausted_with_agent() — langchain Function Reference

Architecture documentation for the test_model_fallback_middleware_exhausted_with_agent() function in test_model_fallback.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  8ee8c57b_2032_bdb4_ddf4_e238686da9cf["test_model_fallback_middleware_exhausted_with_agent()"]
  c6372e75_e4e3_ed20_8230_4be219762f0f["test_model_fallback.py"]
  8ee8c57b_2032_bdb4_ddf4_e238686da9cf -->|defined in| c6372e75_e4e3_ed20_8230_4be219762f0f
  6fcf00cc_28c5_96c2_9c24_987556d1c13e["_llm_type()"]
  8ee8c57b_2032_bdb4_ddf4_e238686da9cf -->|calls| 6fcf00cc_28c5_96c2_9c24_987556d1c13e
  478a87ea_9f11_34e4_9905_c8e2bb1205b7["_generate()"]
  8ee8c57b_2032_bdb4_ddf4_e238686da9cf -->|calls| 478a87ea_9f11_34e4_9905_c8e2bb1205b7
  style 8ee8c57b_2032_bdb4_ddf4_e238686da9cf fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_model_fallback.py lines 330–366

def test_model_fallback_middleware_exhausted_with_agent() -> None:
    """Test ModelFallbackMiddleware with agent.invoke when all models fail."""

    class AlwaysFailingModel(BaseChatModel):
        """Model that always fails."""

        def __init__(self, name: str):
            super().__init__()
            self.name = name

        @override
        def _generate(
            self,
            messages: list[BaseMessage],
            stop: list[str] | None = None,
            run_manager: CallbackManagerForLLMRun | None = None,
            **kwargs: Any,
        ) -> ChatResult:
            msg = f"{self.name} failed"
            raise ValueError(msg)

        @property
        def _llm_type(self) -> str:
            return self.name or "always_failing"

    primary = AlwaysFailingModel("primary")
    fallback1 = AlwaysFailingModel("fallback1")
    fallback2 = AlwaysFailingModel("fallback2")

    # Primary fails (attempt 1), then fallback1 (attempt 2), then fallback2 (attempt 3)
    fallback_middleware = ModelFallbackMiddleware(fallback1, fallback2)

    agent = create_agent(model=primary, middleware=[fallback_middleware])

    # Should fail with the last fallback's error
    with pytest.raises(ValueError, match="fallback2 failed"):
        agent.invoke({"messages": [HumanMessage("Test")]})

Domain

Subdomains

Frequently Asked Questions

What does test_model_fallback_middleware_exhausted_with_agent() do?
test_model_fallback_middleware_exhausted_with_agent() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_model_fallback.py.
Where is test_model_fallback_middleware_exhausted_with_agent() defined?
test_model_fallback_middleware_exhausted_with_agent() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_model_fallback.py at line 330.
What does test_model_fallback_middleware_exhausted_with_agent() call?
test_model_fallback_middleware_exhausted_with_agent() calls 2 function(s): _generate, _llm_type.

Analyze Your Own Codebase

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

Try Supermodel Free