test_server.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from __future__ import annotations
  2. from fastapi.testclient import TestClient
  3. from src.astro_mcp.server import create_app
  4. def test_health_endpoint_smoke() -> None:
  5. client = TestClient(create_app())
  6. res = client.get("/health")
  7. assert res.status_code == 200
  8. data = res.json()
  9. assert data["ok"] is True
  10. assert data["server"] == "astro-mcp"
  11. assert data["port"] == 7016
  12. assert "version" in data
  13. def test_root_lists_tools() -> None:
  14. client = TestClient(create_app())
  15. res = client.get("/")
  16. assert res.status_code == 200
  17. data = res.json()
  18. assert data["server"] == "astro-mcp"
  19. assert data["status"] == "ready"
  20. expected_tools = {
  21. "get_planetary_positions",
  22. "calculate_natal_chart",
  23. "calculate_transit_chart",
  24. "calculate_synastry_chart",
  25. "calculate_composite_chart",
  26. "calculate_davison_chart",
  27. "get_transit_preview",
  28. "person_manage",
  29. "list_house_systems",
  30. "calculate_natal_chart_by_id",
  31. "calculate_transit_chart_by_id",
  32. "calculate_synastry_chart_by_id",
  33. "calculate_composite_chart_by_id",
  34. "calculate_davison_chart_by_id",
  35. "get_transit_preview_by_id",
  36. }
  37. actual_tools = set(data["tools"])
  38. assert expected_tools.issubset(actual_tools), \
  39. f"Missing tools: {expected_tools - actual_tools}"
  40. assert data["mcp"] == {"sse": "/mcp/sse", "messages": "/mcp/messages"}