forked from Rockachopa/Timmy-time-dashboard
78 lines
2.6 KiB
Python
78 lines
2.6 KiB
Python
"""Tests for the API status endpoints.
|
|
|
|
Verifies /api/briefing/status, /api/memory/status, and /api/swarm/status
|
|
return valid JSON with expected keys.
|
|
"""
|
|
|
|
|
|
def test_api_briefing_status_returns_ok(client):
|
|
"""GET /api/briefing/status returns 200 with expected JSON structure."""
|
|
response = client.get("/api/briefing/status")
|
|
assert response.status_code == 200
|
|
|
|
data = response.json()
|
|
assert data["status"] == "ok"
|
|
assert "pending_approvals" in data
|
|
assert isinstance(data["pending_approvals"], int)
|
|
assert "last_generated" in data
|
|
# last_generated can be None or a string
|
|
assert data["last_generated"] is None or isinstance(data["last_generated"], str)
|
|
|
|
|
|
def test_api_memory_status_returns_ok(client):
|
|
"""GET /api/memory/status returns 200 with expected JSON structure."""
|
|
response = client.get("/api/memory/status")
|
|
assert response.status_code == 200
|
|
|
|
data = response.json()
|
|
assert data["status"] == "ok"
|
|
assert "db_exists" in data
|
|
assert isinstance(data["db_exists"], bool)
|
|
assert "db_size_bytes" in data
|
|
assert isinstance(data["db_size_bytes"], int)
|
|
assert data["db_size_bytes"] >= 0
|
|
assert "indexed_files" in data
|
|
assert isinstance(data["indexed_files"], int)
|
|
assert data["indexed_files"] >= 0
|
|
|
|
|
|
def test_api_swarm_status_returns_ok(client):
|
|
"""GET /api/swarm/status returns 200 with expected JSON structure."""
|
|
response = client.get("/api/swarm/status")
|
|
assert response.status_code == 200
|
|
|
|
data = response.json()
|
|
assert data["status"] == "ok"
|
|
assert "active_workers" in data
|
|
assert isinstance(data["active_workers"], int)
|
|
assert "pending_tasks" in data
|
|
assert isinstance(data["pending_tasks"], int)
|
|
assert data["pending_tasks"] >= 0
|
|
assert "message" in data
|
|
assert isinstance(data["message"], str)
|
|
assert data["message"] == "Swarm monitoring endpoint"
|
|
|
|
|
|
def test_api_swarm_status_reflects_pending_tasks(client):
|
|
"""GET /api/swarm/status reflects pending tasks from task queue."""
|
|
# First create a task
|
|
client.post("/api/tasks", json={"title": "Swarm status test task"})
|
|
|
|
# Now check swarm status
|
|
response = client.get("/api/swarm/status")
|
|
assert response.status_code == 200
|
|
|
|
data = response.json()
|
|
assert data["pending_tasks"] >= 1
|
|
|
|
|
|
def test_api_briefing_status_pending_approvals_count(client):
|
|
"""GET /api/briefing/status returns correct pending approvals count."""
|
|
response = client.get("/api/briefing/status")
|
|
assert response.status_code == 200
|
|
|
|
data = response.json()
|
|
assert "pending_approvals" in data
|
|
assert isinstance(data["pending_approvals"], int)
|
|
assert data["pending_approvals"] >= 0
|