TestErrorHandling Class — langchain Architecture
Architecture documentation for the TestErrorHandling class in test_wrap_model_call.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD af226bc7_9003_a498_4aba_5a5b0a9f8c0c["TestErrorHandling"] 0f829642_e361_67a1_cbca_f82839bbbd31["GenericFakeChatModel"] af226bc7_9003_a498_4aba_5a5b0a9f8c0c -->|extends| 0f829642_e361_67a1_cbca_f82839bbbd31 949c7cf4_56fe_f3b4_cd89_9631a7e9cb1e["AgentMiddleware"] af226bc7_9003_a498_4aba_5a5b0a9f8c0c -->|extends| 949c7cf4_56fe_f3b4_cd89_9631a7e9cb1e 573473e5_eb93_a7d7_84ba_c975071c09af["test_wrap_model_call.py"] af226bc7_9003_a498_4aba_5a5b0a9f8c0c -->|defined in| 573473e5_eb93_a7d7_84ba_c975071c09af 1ddb5742_9c97_c187_6417_15b8741aa77f["test_convert_error_to_response()"] af226bc7_9003_a498_4aba_5a5b0a9f8c0c -->|method| 1ddb5742_9c97_c187_6417_15b8741aa77f 0cd07b8b_eafe_5ebf_f9e4_b52d74309f5f["test_selective_error_handling()"] af226bc7_9003_a498_4aba_5a5b0a9f8c0c -->|method| 0cd07b8b_eafe_5ebf_f9e4_b52d74309f5f 512d51dd_0a96_1808_db39_6bbbb81c54a5["test_error_handling_with_success_path()"] af226bc7_9003_a498_4aba_5a5b0a9f8c0c -->|method| 512d51dd_0a96_1808_db39_6bbbb81c54a5
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py lines 374–493
class TestErrorHandling:
"""Test error handling with wrap_model_call."""
def test_convert_error_to_response(self) -> None:
"""Test middleware that converts errors to successful responses."""
class AlwaysFailModel(GenericFakeChatModel):
@override
def _generate(
self,
messages: list[BaseMessage],
stop: list[str] | None = None,
run_manager: CallbackManagerForLLMRun | None = None,
**kwargs: Any,
) -> ChatResult:
msg = "Model error"
raise ValueError(msg)
class ErrorToSuccessMiddleware(AgentMiddleware):
def wrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelCallResult:
try:
return handler(request)
except Exception as e:
return AIMessage(content=f"Error occurred: {e}. Using fallback response.")
model = AlwaysFailModel(messages=iter([]))
agent = create_agent(model=model, middleware=[ErrorToSuccessMiddleware()])
# Should not raise, middleware converts error to response
result = agent.invoke({"messages": [HumanMessage("Test")]})
assert "Error occurred" in result["messages"][1].content
assert "fallback response" in result["messages"][1].content
def test_selective_error_handling(self) -> None:
"""Test middleware that only handles specific errors."""
class SpecificErrorModel(GenericFakeChatModel):
@override
def _generate(
self,
messages: list[BaseMessage],
stop: list[str] | None = None,
run_manager: CallbackManagerForLLMRun | None = None,
**kwargs: Any,
) -> ChatResult:
msg = "Network error"
raise ConnectionError(msg)
class SelectiveErrorMiddleware(AgentMiddleware):
def wrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelCallResult:
try:
return handler(request)
except ConnectionError:
return AIMessage(content="Network issue, try again later")
model = SpecificErrorModel(messages=iter([]))
agent = create_agent(model=model, middleware=[SelectiveErrorMiddleware()])
result = agent.invoke({"messages": [HumanMessage("Test")]})
assert result["messages"][1].content == "Network issue, try again later"
def test_error_handling_with_success_path(self) -> None:
"""Test that error handling middleware works correctly on both success and error paths."""
call_log = []
class ErrorRecoveryMiddleware(AgentMiddleware):
def wrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelCallResult:
Source
Frequently Asked Questions
What is the TestErrorHandling class?
TestErrorHandling is a class in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py.
Where is TestErrorHandling defined?
TestErrorHandling is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py at line 374.
What does TestErrorHandling extend?
TestErrorHandling extends GenericFakeChatModel, AgentMiddleware.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free