whisper.api / app /tests /test_api /test_users.py
Ved Gupta
Test Added and some user route updated
0359012
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"