test: baseline test suite — 86 tests covering auth, CRUD, settings, chat, terraform, reports, terminal
This commit is contained in:
68
backend/tests/test_mcp_servers.py
Normal file
68
backend/tests/test_mcp_servers.py
Normal file
@@ -0,0 +1,68 @@
|
||||
"""
|
||||
Tests for MCP Server CRUD operations.
|
||||
"""
|
||||
import pytest
|
||||
|
||||
_state: dict = {}
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_create_mcp_server(client, admin_headers):
|
||||
"""POST /api/mcp/servers — create via JSON body."""
|
||||
r = await client.post(
|
||||
"/api/mcp/servers",
|
||||
json={
|
||||
"name": "TestMCP",
|
||||
"server_type": "stdio",
|
||||
"command": "python3 test.py",
|
||||
},
|
||||
headers=admin_headers,
|
||||
)
|
||||
assert r.status_code == 200, r.text
|
||||
body = r.json()
|
||||
assert "id" in body
|
||||
_state["mid"] = body["id"]
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_list_mcp_servers(client, admin_headers):
|
||||
"""GET /api/mcp/servers — list must include created server."""
|
||||
r = await client.get("/api/mcp/servers", headers=admin_headers)
|
||||
assert r.status_code == 200
|
||||
servers = r.json()
|
||||
assert isinstance(servers, list)
|
||||
assert any(s["id"] == _state["mid"] for s in servers)
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_update_mcp_server(client, admin_headers):
|
||||
"""PUT /api/mcp/servers/{mid} — update name."""
|
||||
mid = _state["mid"]
|
||||
r = await client.put(
|
||||
f"/api/mcp/servers/{mid}",
|
||||
json={
|
||||
"name": "UpdatedMCP",
|
||||
"server_type": "stdio",
|
||||
"command": "python3 test.py",
|
||||
},
|
||||
headers=admin_headers,
|
||||
)
|
||||
assert r.status_code == 200, r.text
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_toggle_mcp_server(client, admin_headers):
|
||||
"""PUT /api/mcp/servers/{mid}/toggle — toggle active state."""
|
||||
mid = _state["mid"]
|
||||
r = await client.put(f"/api/mcp/servers/{mid}/toggle", headers=admin_headers)
|
||||
assert r.status_code == 200, r.text
|
||||
body = r.json()
|
||||
assert "is_active" in body
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_delete_mcp_server(client, admin_headers):
|
||||
"""DELETE /api/mcp/servers/{mid} — remove server."""
|
||||
mid = _state["mid"]
|
||||
r = await client.delete(f"/api/mcp/servers/{mid}", headers=admin_headers)
|
||||
assert r.status_code == 200, r.text
|
||||
Reference in New Issue
Block a user