Toolhouse MCP Server

MIT License
6
  • Apple
  • tests
import pytest from mysql_mcp_server.server import app, list_tools, list_resources, read_resource, call_tool from pydantic import AnyUrl def test_server_initialization(): """Test that the server initializes correctly.""" assert app.name == "mysql_mcp_server" @pytest.mark.asyncio async def test_list_tools(): """Test that list_tools returns expected tools.""" tools = await list_tools() assert len(tools) == 1 assert tools[0].name == "execute_sql" assert "query" in tools[0].inputSchema["properties"] @pytest.mark.asyncio async def test_call_tool_invalid_name(): """Test calling a tool with an invalid name.""" with pytest.raises(ValueError, match="Unknown tool"): await call_tool("invalid_tool", {}) @pytest.mark.asyncio async def test_call_tool_missing_query(): """Test calling execute_sql without a query.""" with pytest.raises(ValueError, match="Query is required"): await call_tool("execute_sql", {}) # Skip database-dependent tests if no database connection @pytest.mark.asyncio @pytest.mark.skipif( not all([ pytest.importorskip("mysql.connector"), pytest.importorskip("mysql_mcp_server") ]), reason="MySQL connection not available" ) async def test_list_resources(): """Test listing resources (requires database connection).""" try: resources = await list_resources() assert isinstance(resources, list) except ValueError as e: if "Missing required database configuration" in str(e): pytest.skip("Database configuration not available") raise