Files
2025-10-10 14:36:58 +00:00

46 lines
1.6 KiB
Python

import pytest
from fastapi.testclient import TestClient
from src.app import app
client = TestClient(app)
def test_get_activities():
response = client.get("/activities")
assert response.status_code == 200
data = response.json()
assert isinstance(data, dict)
assert "Chess Club" in data
def test_signup_for_activity():
email = "newstudent@mergington.edu"
activity = "Chess Club"
response = client.post(f"/activities/{activity}/signup?email={email}")
assert response.status_code == 200
assert email in response.json()["message"]
# Try signing up again (should fail)
response2 = client.post(f"/activities/{activity}/signup?email={email}")
assert response2.status_code == 400
def test_unregister_from_activity():
email = "newstudent@mergington.edu"
activity = "Chess Club"
# Unregister
response = client.post(f"/activities/{activity}/unregister?email={email}")
assert response.status_code == 200
assert email in response.json()["message"]
# Try unregistering again (should fail)
response2 = client.post(f"/activities/{activity}/unregister?email={email}")
assert response2.status_code == 404
def test_signup_invalid_activity():
response = client.post("/activities/Nonexistent/signup?email=test@mergington.edu")
assert response.status_code == 404
def test_unregister_invalid_activity():
response = client.post("/activities/Nonexistent/unregister?email=test@mergington.edu")
assert response.status_code == 404
def test_unregister_invalid_participant():
response = client.post("/activities/Chess Club/unregister?email=notfound@mergington.edu")
assert response.status_code == 404