smoke_test.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from __future__ import annotations
  2. from fastapi.testclient import TestClient
  3. from backend.main import app
  4. client = TestClient(app)
  5. def assert_ok(response):
  6. assert response.status_code == 200, response.text
  7. return response.json()
  8. def main() -> None:
  9. assert_ok(client.get("/health"))
  10. frontend = client.get("/app/")
  11. assert frontend.status_code == 200
  12. assert "智能体平台" in frontend.text
  13. agents = assert_ok(client.get("/agents"))
  14. agent_ids = {agent["agent_id"] for agent in agents["agents"]}
  15. assert agents["total"] == 2
  16. assert "planner" not in agent_ids
  17. assert {"deep_research", "rss_digest"} <= agent_ids
  18. task = assert_ok(
  19. client.post(
  20. "/tasks",
  21. json={
  22. "title": "Research adapter test",
  23. "input": "agent platform architecture",
  24. "agent_id": "deep_research",
  25. "metadata": {"dry_run": True},
  26. },
  27. )
  28. )
  29. completed = assert_ok(client.post(f"/tasks/{task['task_id']}/run?background=false"))
  30. assert completed["status"] == "completed"
  31. batch = assert_ok(
  32. client.post(
  33. "/batch/run",
  34. json={
  35. "requests": {
  36. "deep_research": {
  37. "input": "ship v1",
  38. "context": {"mode": "group_chat"},
  39. },
  40. "rss_digest": {
  41. "input": "latest rss",
  42. "context": {"mode": "group_chat"},
  43. },
  44. }
  45. },
  46. )
  47. )
  48. assert "deep_research" in batch["responses"]
  49. assert "rss_digest" in batch["responses"]
  50. assert_ok(client.get("/events"))
  51. print("chapter16 platform smoke test passed")
  52. if __name__ == "__main__":
  53. main()