Spaces:
Sleeping
Sleeping
| def test_signup_and_login(client): | |
| response = client.post("/auth/signup", json={"email": "a@example.com", "password": "secret123"}) | |
| assert response.status_code == 201 | |
| assert response.json()["email"] == "a@example.com" | |
| response = client.post("/auth/login", json={"email": "a@example.com", "password": "secret123"}) | |
| assert response.status_code == 200 | |
| body = response.json() | |
| assert body["token_type"] == "bearer" | |
| assert body["access_token"] | |
| def test_signup_duplicate_email_rejected(client): | |
| client.post("/auth/signup", json={"email": "dup@example.com", "password": "secret123"}) | |
| response = client.post("/auth/signup", json={"email": "dup@example.com", "password": "secret123"}) | |
| assert response.status_code == 400 | |
| def test_login_wrong_password_rejected(client): | |
| client.post("/auth/signup", json={"email": "b@example.com", "password": "secret123"}) | |
| response = client.post("/auth/login", json={"email": "b@example.com", "password": "wrong"}) | |
| assert response.status_code == 401 | |
| def test_protected_route_requires_token(client): | |
| response = client.get("/patients") | |
| assert response.status_code == 401 | |
| def test_first_user_becomes_admin_and_second_does_not(client): | |
| first = client.post("/auth/signup", json={"email": "first@example.com", "password": "secret123"}) | |
| assert first.status_code == 201 | |
| assert first.json()["is_admin"] is True | |
| second = client.post("/auth/signup", json={"email": "second@example.com", "password": "secret123"}) | |
| assert second.status_code == 201 | |
| assert second.json()["is_admin"] is False | |