Skip to main content
Glama
einreke

Sleeper API MCP

by einreke
test_sleeper_mcp.py5.95 kB
#!/usr/bin/env python3 import sys import os import unittest from unittest.mock import patch, MagicMock import json # Add parent directory to path to import server sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from server import SleeperMCP class TestSleeperMCP(unittest.TestCase): """Test cases for SleeperMCP class.""" def setUp(self): """Set up test fixtures.""" self.mcp = SleeperMCP() @patch('requests.get') def test_get_user_info(self, mock_get): """Test getUserInfo tool.""" # Mock response mock_response = MagicMock() mock_response.json.return_value = { "username": "sleeperuser", "user_id": "12345678", "display_name": "SleeperUser", "avatar": "cc12ec49965eb7856f84d71cf85306af" } mock_response.raise_for_status.return_value = None mock_get.return_value = mock_response # Call method result = self.mcp.get_user_info({"username_or_user_id": "sleeperuser"}) # Assertions mock_get.assert_called_once_with("https://api.sleeper.app/v1/user/sleeperuser") self.assertEqual(result["username"], "sleeperuser") self.assertEqual(result["user_id"], "12345678") @patch('requests.get') def test_get_user_leagues(self, mock_get): """Test getUserLeagues tool.""" # Mock response mock_response = MagicMock() mock_response.json.return_value = [ { "league_id": "123456789", "name": "Test League", "season": "2023", "total_rosters": 12 } ] mock_response.raise_for_status.return_value = None mock_get.return_value = mock_response # Call method result = self.mcp.get_user_leagues({ "user_id": "12345678", "sport": "nfl", "season": "2023" }) # Assertions mock_get.assert_called_once_with("https://api.sleeper.app/v1/user/12345678/leagues/nfl/2023") self.assertEqual(len(result), 1) self.assertEqual(result[0]["league_id"], "123456789") @patch('requests.get') def test_get_league_info(self, mock_get): """Test getLeagueInfo tool.""" # Mock response mock_response = MagicMock() mock_response.json.return_value = { "league_id": "123456789", "name": "Test League", "season": "2023", "total_rosters": 12 } mock_response.raise_for_status.return_value = None mock_get.return_value = mock_response # Call method result = self.mcp.get_league_info({"league_id": "123456789"}) # Assertions mock_get.assert_called_once_with("https://api.sleeper.app/v1/league/123456789") self.assertEqual(result["league_id"], "123456789") @patch('requests.get') def test_get_trending_players(self, mock_get): """Test getTrendingPlayers tool.""" # Mock response mock_response = MagicMock() mock_response.json.return_value = [ {"player_id": "1111", "count": 45}, {"player_id": "2222", "count": 30} ] mock_response.raise_for_status.return_value = None mock_get.return_value = mock_response # Call method result = self.mcp.get_trending_players({ "sport": "nfl", "type": "add", "lookback_hours": 24, "limit": 10 }) # Assertions mock_get.assert_called_once_with("https://api.sleeper.app/v1/players/nfl/trending/add?lookback_hours=24&limit=10") self.assertEqual(len(result), 2) self.assertEqual(result[0]["player_id"], "1111") def test_handle_message_list_tools(self): """Test handling listTools method.""" # Create message message = { "jsonrpc": "2.0", "id": 1, "method": "listTools" } # Call method result = self.mcp.handle_message(message) # Assertions self.assertEqual(result["jsonrpc"], "2.0") self.assertEqual(result["id"], 1) self.assertIn("result", result) self.assertIsInstance(result["result"], list) # Check if all tools are listed tool_names = [tool["name"] for tool in result["result"]] self.assertIn("getUserInfo", tool_names) self.assertIn("getLeagueInfo", tool_names) self.assertIn("getTrendingPlayers", tool_names) def test_handle_message_invalid_method(self): """Test handling an invalid method.""" # Create message message = { "jsonrpc": "2.0", "id": 1, "method": "invalidMethod" } # Call method result = self.mcp.handle_message(message) # Assertions self.assertEqual(result["jsonrpc"], "2.0") self.assertEqual(result["id"], 1) self.assertIn("error", result) self.assertEqual(result["error"]["code"], -32601) # Method not found def test_handle_message_invalid_jsonrpc(self): """Test handling message with invalid JSON-RPC version.""" # Create message message = { "jsonrpc": "1.0", "id": 1, "method": "listTools" } # Call method result = self.mcp.handle_message(message) # Assertions self.assertEqual(result["jsonrpc"], "2.0") self.assertEqual(result["id"], 1) self.assertIn("error", result) self.assertEqual(result["error"]["code"], -32600) # Invalid Request def run_tests(): """Run the tests.""" unittest.main() if __name__ == "__main__": run_tests()

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/einreke/sleeper-scraper-mcp'

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