From b19b317e6bfd88d04184a29abb80d6fa5a3354c3 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 25 Jan 2024 16:16:15 -0300 Subject: [PATCH] Refactor user tests and fix error handling --- tests/test_user.py | 58 ++++++++++++++++------------------------------ 1 file changed, 20 insertions(+), 38 deletions(-) diff --git a/tests/test_user.py b/tests/test_user.py index 49962c8d1..5f894e801 100644 --- a/tests/test_user.py +++ b/tests/test_user.py @@ -1,11 +1,11 @@ from datetime import datetime -from langflow.services.auth.utils import create_super_user, get_password_hash -from langflow.services.database.models.user.user import User -from langflow.services.database.utils import session_getter -from langflow.services.getters import get_db_service, get_settings_service import pytest +from langflow.services.auth.utils import create_super_user, get_password_hash from langflow.services.database.models.user import UserUpdate +from langflow.services.database.models.user.model import User +from langflow.services.database.utils import session_getter +from langflow.services.deps import get_db_service, get_settings_service @pytest.fixture @@ -85,15 +85,11 @@ def test_deactivated_user_cannot_access(client, deactivated_user, logged_in_head assert response.json()["detail"] == "The user doesn't have enough privileges" -def test_data_consistency_after_update( - client, active_user, logged_in_headers, super_user_headers -): +def test_data_consistency_after_update(client, active_user, logged_in_headers, super_user_headers): user_id = active_user.id update_data = UserUpdate(is_active=False) - response = client.patch( - f"/api/v1/users/{user_id}", json=update_data.dict(), headers=super_user_headers - ) + response = client.patch(f"/api/v1/users/{user_id}", json=update_data.dict(), headers=super_user_headers) assert response.status_code == 200, response.json() # Fetch the updated user from the database @@ -120,7 +116,7 @@ def test_inactive_user(client): username="inactiveuser", password=get_password_hash("testpassword"), is_active=False, - last_login_at="2023-01-01T00:00:00", # Set to a valid datetime string + last_login_at=datetime(2023, 1, 1, 0, 0, 0), ) session.add(user) session.commit() @@ -167,17 +163,13 @@ def test_patch_user(client, active_user, logged_in_headers): username="newname", ) - response = client.patch( - f"/api/v1/users/{user_id}", json=update_data.dict(), headers=logged_in_headers - ) + response = client.patch(f"/api/v1/users/{user_id}", json=update_data.dict(), headers=logged_in_headers) assert response.status_code == 200, response.json() update_data = UserUpdate( profile_image="new_image", ) - response = client.patch( - f"/api/v1/users/{user_id}", json=update_data.dict(), headers=logged_in_headers - ) + response = client.patch(f"/api/v1/users/{user_id}", json=update_data.dict(), headers=logged_in_headers) assert response.status_code == 200, response.json() @@ -205,19 +197,13 @@ def test_patch_user_wrong_id(client, active_user, logged_in_headers): username="newname", ) - response = client.patch( - f"/api/v1/users/{user_id}", json=update_data.dict(), headers=logged_in_headers - ) + response = client.patch(f"/api/v1/users/{user_id}", json=update_data.dict(), headers=logged_in_headers) assert response.status_code == 422, response.json() - assert response.json() == { - "detail": [ - { - "loc": ["path", "user_id"], - "msg": "value is not a valid uuid", - "type": "type_error.uuid", - } - ] - } + json_response = response.json() + detail = json_response["detail"] + error = detail[0] + assert error["loc"] == ["path", "user_id"] + assert error["type"] == "uuid_parsing" def test_delete_user(client, test_user, super_user_headers): @@ -231,15 +217,11 @@ def test_delete_user_wrong_id(client, test_user, super_user_headers): user_id = "wrong_id" response = client.delete(f"/api/v1/users/{user_id}", headers=super_user_headers) assert response.status_code == 422 - assert response.json() == { - "detail": [ - { - "loc": ["path", "user_id"], - "msg": "value is not a valid uuid", - "type": "type_error.uuid", - } - ] - } + json_response = response.json() + detail = json_response["detail"] + error = detail[0] + assert error["loc"] == ["path", "user_id"] + assert error["type"] == "uuid_parsing" def test_normal_user_cant_delete_user(client, test_user, logged_in_headers):