Skip to main content
Glama
test_leaders.py2.62 kB
import pytest import asyncio from unittest.mock import patch, AsyncMock from mcp_server import app from wakapi_sdk.client import ( LeadersViewModel, LeadersRange, ) class TestLeaders: """Test for get_leaders""" @pytest.mark.asyncio async def test_success(self, mock_wakapi_client): """Successfully retrieve leaderboard""" with patch( "mcp_tools.dependency_injection.get_wakapi_client", return_value=mock_wakapi_client, ): tool = await app.get_tool("get_leaders") result = await tool.run({}) assert len(result.structured_content["data"]) == 2 assert result.structured_content["data"][0]["user"]["username"] == "leader1" mock_wakapi_client.get_leaders.assert_called_once() @pytest.mark.asyncio async def test_empty_response(self, mock_wakapi_client): """Empty response""" empty_leaders = [] with patch( "mcp_tools.dependency_injection.get_wakapi_client", return_value=mock_wakapi_client, ): with patch.object( mock_wakapi_client, "get_leaders", new_callable=AsyncMock ) as mock_get_leaders: empty_leaders_model = LeadersViewModel( data=empty_leaders, language="all", page=1, range=LeadersRange( end_date="2023-01-01", end_text="Jan 1st, 2023", name="last_7_days", start_date="2022-12-25", start_text="Dec 25th, 2022", text="Last 7 days", ), total_pages=1, ) mock_get_leaders.return_value = empty_leaders_model tool = await app.get_tool("get_leaders") result = await tool.run({}) assert len(result.structured_content["data"]) == 0 @pytest.mark.asyncio async def test_timeout(self, mock_wakapi_client): """Timeout""" with patch( "mcp_tools.dependency_injection.get_wakapi_client", return_value=mock_wakapi_client, ): with patch.object( mock_wakapi_client, "get_leaders", new_callable=AsyncMock ) as mock_get_leaders: mock_get_leaders.side_effect = asyncio.TimeoutError() tool = await app.get_tool("get_leaders") with pytest.raises(ValueError): await tool.run({})

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/impure0xntk/mcp-wakapi'

If you have feedback or need assistance with the MCP directory API, please join our Discord server