OceanBase MCP Server
by yuanoOo
Verified
- oceanbase_mcp_server
- tests
import pytest
from oceanbase_mcp_server.server import app, list_tools, list_resources, call_tool
def test_server_initialization():
"""Test that the server initializes correctly."""
assert app.name == "oceanbase_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("oceanbase_mcp_server")
]),
reason="OceanBase 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
ID: 7a7z9o5y5w