forked from cardosofelipe/fast-next-template
fix(tests): use delay variables in retry delay test
The delay2 and delay3 variables were calculated but never asserted, causing lint warnings. Added assertions to verify all delays are positive and within max bounds. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,15 +2,13 @@
|
|||||||
Tests for MCP Tool Call Routing
|
Tests for MCP Tool Call Routing
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from unittest.mock import AsyncMock, MagicMock, patch
|
from unittest.mock import AsyncMock, patch
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from app.services.mcp.config import MCPConfig, MCPServerConfig
|
from app.services.mcp.config import MCPConfig, MCPServerConfig
|
||||||
from app.services.mcp.connection import ConnectionPool
|
from app.services.mcp.connection import ConnectionPool
|
||||||
from app.services.mcp.exceptions import (
|
from app.services.mcp.exceptions import (
|
||||||
MCPCircuitOpenError,
|
|
||||||
MCPToolError,
|
|
||||||
MCPToolNotFoundError,
|
MCPToolNotFoundError,
|
||||||
)
|
)
|
||||||
from app.services.mcp.registry import MCPServerRegistry
|
from app.services.mcp.registry import MCPServerRegistry
|
||||||
@@ -79,7 +77,10 @@ class TestToolInfo:
|
|||||||
name="create_issue",
|
name="create_issue",
|
||||||
description="Create a new issue",
|
description="Create a new issue",
|
||||||
server_name="issues",
|
server_name="issues",
|
||||||
input_schema={"type": "object", "properties": {"title": {"type": "string"}}},
|
input_schema={
|
||||||
|
"type": "object",
|
||||||
|
"properties": {"title": {"type": "string"}},
|
||||||
|
},
|
||||||
)
|
)
|
||||||
assert info.name == "create_issue"
|
assert info.name == "create_issue"
|
||||||
assert info.description == "Create a new issue"
|
assert info.description == "Create a new issue"
|
||||||
@@ -174,9 +175,7 @@ class TestToolRouter:
|
|||||||
|
|
||||||
# Mock the pool connection and request
|
# Mock the pool connection and request
|
||||||
mock_conn = AsyncMock()
|
mock_conn = AsyncMock()
|
||||||
mock_conn.execute_request = AsyncMock(
|
mock_conn.execute_request = AsyncMock(return_value={"result": {"status": "ok"}})
|
||||||
return_value={"result": {"status": "ok"}}
|
|
||||||
)
|
|
||||||
mock_conn.is_connected = True
|
mock_conn.is_connected = True
|
||||||
|
|
||||||
with patch.object(router._pool, "get_connection", return_value=mock_conn):
|
with patch.object(router._pool, "get_connection", return_value=mock_conn):
|
||||||
@@ -232,9 +231,7 @@ class TestToolRouter:
|
|||||||
await router.register_tool_mapping("tool-on-server-1", "server-1")
|
await router.register_tool_mapping("tool-on-server-1", "server-1")
|
||||||
|
|
||||||
mock_conn = AsyncMock()
|
mock_conn = AsyncMock()
|
||||||
mock_conn.execute_request = AsyncMock(
|
mock_conn.execute_request = AsyncMock(return_value={"result": "routed"})
|
||||||
return_value={"result": "routed"}
|
|
||||||
)
|
|
||||||
mock_conn.is_connected = True
|
mock_conn.is_connected = True
|
||||||
|
|
||||||
with patch.object(router._pool, "get_connection", return_value=mock_conn):
|
with patch.object(router._pool, "get_connection", return_value=mock_conn):
|
||||||
@@ -339,7 +336,11 @@ class TestToolRouter:
|
|||||||
delay2 = router._calculate_retry_delay(2, config)
|
delay2 = router._calculate_retry_delay(2, config)
|
||||||
delay3 = router._calculate_retry_delay(3, config)
|
delay3 = router._calculate_retry_delay(3, config)
|
||||||
|
|
||||||
# Delays should increase with attempts
|
# All delays should be positive
|
||||||
assert delay1 > 0
|
assert delay1 > 0
|
||||||
# Allow for jitter variation
|
assert delay2 > 0
|
||||||
|
assert delay3 > 0
|
||||||
|
# All delays should be within max bounds (allow for jitter variation)
|
||||||
assert delay1 <= config.retry_max_delay * 1.25
|
assert delay1 <= config.retry_max_delay * 1.25
|
||||||
|
assert delay2 <= config.retry_max_delay * 1.25
|
||||||
|
assert delay3 <= config.retry_max_delay * 1.25
|
||||||
|
|||||||
Reference in New Issue
Block a user