test_middleware_initialization_validation() — langchain Function Reference
Architecture documentation for the test_middleware_initialization_validation() function in test_tool_call_limit.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 8014b0fa_5d1f_0437_19ec_489247b13baf["test_middleware_initialization_validation()"] a75b8390_08d3_7137_c8a7_9d78fc0c4517["test_tool_call_limit.py"] 8014b0fa_5d1f_0437_19ec_489247b13baf -->|defined in| a75b8390_08d3_7137_c8a7_9d78fc0c4517 style 8014b0fa_5d1f_0437_19ec_489247b13baf fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_tool_call_limit.py lines 17–60
def test_middleware_initialization_validation() -> None:
"""Test that middleware initialization validates parameters correctly."""
# Test that at least one limit must be specified
with pytest.raises(ValueError, match="At least one limit must be specified"):
ToolCallLimitMiddleware()
# Test valid initialization with both limits
middleware = ToolCallLimitMiddleware(thread_limit=5, run_limit=3)
assert middleware.thread_limit == 5
assert middleware.run_limit == 3
assert middleware.exit_behavior == "continue"
assert middleware.tool_name is None
# Test with tool name
middleware = ToolCallLimitMiddleware(tool_name="search", thread_limit=5)
assert middleware.tool_name == "search"
assert middleware.thread_limit == 5
assert middleware.run_limit is None
# Test exit behaviors
for behavior in ["error", "end", "continue"]:
middleware = ToolCallLimitMiddleware(thread_limit=5, exit_behavior=behavior)
assert middleware.exit_behavior == behavior
# Test invalid exit behavior
with pytest.raises(ValueError, match="Invalid exit_behavior"):
ToolCallLimitMiddleware(thread_limit=5, exit_behavior="invalid") # type: ignore[arg-type]
# Test run_limit exceeding thread_limit
with pytest.raises(
ValueError,
match=r"run_limit .* cannot exceed thread_limit",
):
ToolCallLimitMiddleware(thread_limit=3, run_limit=5)
# Test run_limit equal to thread_limit (should be valid)
middleware = ToolCallLimitMiddleware(thread_limit=5, run_limit=5)
assert middleware.thread_limit == 5
assert middleware.run_limit == 5
# Test run_limit less than thread_limit (should be valid)
middleware = ToolCallLimitMiddleware(thread_limit=5, run_limit=3)
assert middleware.thread_limit == 5
assert middleware.run_limit == 3
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does test_middleware_initialization_validation() do?
test_middleware_initialization_validation() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_tool_call_limit.py.
Where is test_middleware_initialization_validation() defined?
test_middleware_initialization_validation() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_tool_call_limit.py at line 17.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free