Spaces:
Runtime error
Runtime error
| from fastapi.testclient import TestClient | |
| import pytest | |
| def test_create_user(client: TestClient): | |
| response = client.post( | |
| "/api/users/", | |
| json={ | |
| "username": "testuser", | |
| "email": "testuser@example.com", | |
| "password": "testpassword123" | |
| } | |
| ) | |
| assert response.status_code == 200 | |
| data = response.json() | |
| assert data["email"] == "testuser@example.com" | |
| assert data["username"] == "testuser" | |
| assert "id" in data | |
| def test_create_existing_user(client: TestClient): | |
| # First create | |
| client.post( | |
| "/api/users/", | |
| json={ | |
| "username": "testuser2", | |
| "email": "testuser2@example.com", | |
| "password": "testpassword123" | |
| } | |
| ) | |
| # Then try to create again | |
| response = client.post( | |
| "/api/users/", | |
| json={ | |
| "username": "testuser2", | |
| "email": "testuser2@example.com", | |
| "password": "testpassword123" | |
| } | |
| ) | |
| assert response.status_code == 400 | |
| assert response.json()["detail"] == "Email already exists" | |
| def test_login_user(client: TestClient): | |
| # Create user first | |
| client.post( | |
| "/api/users/", | |
| json={ | |
| "username": "loginuser", | |
| "email": "loginuser@example.com", | |
| "password": "loginpassword123" | |
| } | |
| ) | |
| # Login | |
| response = client.post( | |
| "/api/users/login", | |
| json={ | |
| "email": "loginuser@example.com", | |
| "password": "loginpassword123" | |
| } | |
| ) | |
| assert response.status_code == 200 | |
| data = response.json() | |
| assert "access_token" in data | |
| assert data["token_type"] == "bearer" | |
| assert data["user"]["email"] == "loginuser@example.com" | |
| def test_read_users(client: TestClient): | |
| # Create user first | |
| client.post( | |
| "/api/users/", | |
| json={ | |
| "username": "readuser", | |
| "email": "readuser@example.com", | |
| "password": "readpassword123" | |
| } | |
| ) | |
| # Login to get token | |
| login_response = client.post( | |
| "/api/users/login", | |
| json={ | |
| "email": "readuser@example.com", | |
| "password": "readpassword123" | |
| } | |
| ) | |
| token = login_response.json()["access_token"] | |
| # Get users with token | |
| response = client.get( | |
| "/api/users/", | |
| headers={"Authorization": f"Bearer {token}"} | |
| ) | |
| assert response.status_code == 200 | |
| data = response.json() | |
| assert len(data) >= 1 | |
| assert any(user["email"] == "readuser@example.com" for user in data) | |