Spaces:
Runtime error
Runtime error
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" | |