"""Comprehensive tests for all 16 MCP tools."""
import pytest
from unittest.mock import AsyncMock, patch
class TestReferenceDataTools:
"""Test reference data retrieval tools (Tools 1-4)."""
@pytest.mark.asyncio
async def test_get_chains(self, mock_response_chains):
"""Test getting list of supported chains."""
try:
from mcp_server_debank.server import debank_get_chains
with patch("mcp_server_debank.client.DeBankClient.get", return_value=mock_response_chains):
result = await debank_get_chains()
assert isinstance(result, list)
assert len(result) > 0
except ImportError:
pytest.skip("Server not yet implemented")
@pytest.mark.asyncio
async def test_get_protocols(self, mock_response_protocols):
"""Test getting list of DeFi protocols."""
try:
from mcp_server_debank.server import debank_get_protocols
with patch("mcp_server_debank.client.DeBankClient.get", return_value=mock_response_protocols):
result = await debank_get_protocols()
assert isinstance(result, list)
except ImportError:
pytest.skip("Server not yet implemented")
class TestUserPortfolioTools:
"""Test user portfolio retrieval tools (Tools 5-8)."""
@pytest.mark.asyncio
async def test_get_user_balance(self, valid_address, mock_response_user_balance):
"""Test getting user balance."""
try:
from mcp_server_debank.server import debank_get_user_balance
with patch("mcp_server_debank.client.DeBankClient.get", return_value=mock_response_user_balance):
result = await debank_get_user_balance(address=valid_address)
assert "total_usd_value" in result
except ImportError:
pytest.skip("Server not yet implemented")