MCPcopy Create free account
hub / github.com/IBM/mcp-cli / SlowMockToolManager

Class SlowMockToolManager

tests/tools/test_execution.py:503–528  ·  view source on GitHub ↗

Mock ToolManager with configurable per-tool delays for batch timeout tests.

Source from the content-addressed store, hash-verified

501
502
503class SlowMockToolManager:
504 """Mock ToolManager with configurable per-tool delays for batch timeout tests."""
505
506 def __init__(
507 self, delays: dict[str, float] | None = None, default_delay: float = 0.0
508 ):
509 self.tool_timeout = 30.0
510 self.delays = delays or {}
511 self.default_delay = default_delay
512 self.executed_tools: list[str] = []
513
514 async def execute_tool(
515 self,
516 tool_name: str,
517 arguments: dict,
518 namespace: str | None = None,
519 timeout: float | None = None,
520 ) -> ToolCallResult:
521 delay = self.delays.get(tool_name, self.default_delay)
522 await asyncio.sleep(delay)
523 self.executed_tools.append(tool_name)
524 return ToolCallResult(
525 tool_name=tool_name,
526 success=True,
527 result={"output": f"result from {tool_name}"},
528 )
529
530
531@pytest.mark.asyncio

Calls

no outgoing calls