test_moderator_api.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import pytest
  2. # client is provided by conftest.py
  3. @pytest.fixture
  4. def auth_header(client):
  5. # Create a test user first via API
  6. client.post("/api/v1/users/", json={"username": "testadmin", "password": "password", "role": "admin"})
  7. response = client.post("/api/v1/auth/login", data={"username": "testadmin", "password": "password"})
  8. token = response.json()["access_token"]
  9. return {"Authorization": f"Bearer {token}"}
  10. def test_create_moderator(client, auth_header):
  11. response = client.post(
  12. "/api/v1/moderators/",
  13. json={
  14. "name": "AI Host",
  15. "title": "Senior Moderator",
  16. "bio": "Expert in debate",
  17. "system_prompt": "You are a host."
  18. },
  19. headers=auth_header
  20. )
  21. assert response.status_code == 200
  22. data = response.json()
  23. assert data["name"] == "AI Host"
  24. assert "id" in data
  25. def test_get_moderators(client, auth_header):
  26. # Create one first
  27. client.post(
  28. "/api/v1/moderators/",
  29. json={"name": "Host 1"},
  30. headers=auth_header
  31. )
  32. response = client.get("/api/v1/moderators/", headers=auth_header)
  33. assert response.status_code == 200
  34. data = response.json()
  35. assert len(data) >= 1
  36. assert any(m["name"] == "Host 1" for m in data)
  37. def test_delete_moderator(client, auth_header):
  38. # Create
  39. res = client.post(
  40. "/api/v1/moderators/",
  41. json={"name": "Host To Delete"},
  42. headers=auth_header
  43. )
  44. mod_id = res.json()["id"]
  45. # Delete
  46. del_res = client.delete(f"/api/v1/moderators/{mod_id}", headers=auth_header)
  47. assert del_res.status_code == 200
  48. # Verify gone
  49. get_res = client.get(f"/api/v1/moderators/{mod_id}", headers=auth_header)
  50. assert get_res.status_code == 404