Spaces:
Running
Running
| import uuid | |
| from fastapi.testclient import TestClient | |
| from app.main import app | |
| from app.tests.utils.utils import fake_user_details, get_new_fake_pwd | |
| client = TestClient(app) | |
| test_user_details = fake_user_details() | |
| def test_create_user(): | |
| data = { | |
| "email": test_user_details["email"], | |
| "username": test_user_details["username"], | |
| "password": test_user_details["password"], | |
| } | |
| response = client.post("/api/v1/users/", json=data) | |
| print(response.content) | |
| test_user_details["user_id"] = response.json()["id"] | |
| assert response.status_code == 201 | |
| assert response.json()["email"] == test_user_details["email"] | |
| assert response.json()["username"] == test_user_details["username"] | |
| def test_create_user_invalid_email(): | |
| test_user_details_2 = fake_user_details() | |
| data = { | |
| "email": "invalid_email", | |
| "username": test_user_details_2["username"], | |
| "password": test_user_details_2["password"], | |
| } | |
| response = client.post(f"/api/v1/users/", json=data) | |
| assert response.status_code == 422 | |
| assert "value_error" in response.json()["detail"][0]["type"] | |
| assert "Invalid email" in response.json()["detail"][0]["msg"] | |
| def test_create_user_invalid_password(): | |
| data = { | |
| "email": test_user_details["email"], | |
| "username": test_user_details["username"], | |
| "password": "short", | |
| } | |
| response = client.post("/api/v1/users/", json=data) | |
| assert response.status_code == 422 | |
| assert ( | |
| "Password must be at least 6 characters long" | |
| in response.json()["detail"][0]["msg"] | |
| ) | |
| def test_read_user(): | |
| response = client.get(f"/api/v1/users/{test_user_details['user_id']}") | |
| assert response.status_code == 200 | |
| assert response.json()["email"] == test_user_details["email"] | |
| assert response.json()["username"] == test_user_details["username"] | |
| def test_read_user_not_found(): | |
| response = client.get(f"/api/v1/users/{uuid.uuid4()}") | |
| assert response.status_code == 404 | |
| assert response.json()["detail"] == "User not found" | |
| def test_check_update_password(): | |
| new_password = get_new_fake_pwd() | |
| data = { | |
| "current_password": test_user_details["password"], | |
| "new_password": new_password, | |
| } | |
| response = client.put( | |
| f"/api/v1/users/{test_user_details['user_id']}/update_password/", json=data | |
| ) | |
| assert response.status_code == 200 | |
| assert response.json()["email"] == test_user_details["email"] | |
| assert response.json()["username"] == test_user_details["username"] | |
| def test_check_update_password_invalid_current_password(): | |
| new_password = get_new_fake_pwd() | |
| data = {"current_password": "wrong_password", "new_password": new_password} | |
| response = client.put( | |
| f"/api/v1/users/{test_user_details['user_id']}/update_password/", json=data | |
| ) | |
| assert response.status_code == 400 | |
| assert response.json()["detail"] == "Incorrect password" | |
| def test_check_update_password_not_found(): | |
| data = {"current_password": "wrong_password", "new_password": "new_password"} | |
| response = client.put(f"/api/v1/users/{uuid.uuid4()}/update_password/", json=data) | |
| assert response.status_code == 404 | |
| assert response.json()["detail"] == "User not found" | |
| def test_delete_user_not_found(): | |
| response = client.delete(f"/api/v1/users/{uuid.uuid4()}/delete") | |
| assert response.status_code == 404 | |
| assert response.json()["detail"] == "User not found" | |