Skip to content

Commit c4d3ba6

Browse files
committed
Refactor reset password test
1 parent f8e35a5 commit c4d3ba6

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed

backend/app/tests/api/routes/test_login.py

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
from unittest.mock import patch
22

3+
from app.crud import create_user
4+
from app.tests.utils.user import user_authentication_headers
35
from fastapi.testclient import TestClient
46
from sqlmodel import Session, select
57

68
from app.core.config import settings
79
from app.core.security import verify_password
8-
from app.models import User
10+
from app.models import User, UserCreate
11+
from app.tests.utils.utils import random_email, random_lower_string
912
from app.utils import generate_password_reset_token
1013

1114

@@ -70,22 +73,37 @@ def test_recovery_password_user_not_exits(
7073

7174

7275
def test_reset_password(
73-
client: TestClient, superuser_token_headers: dict[str, str], db: Session
76+
client: TestClient, db: Session
7477
) -> None:
75-
token = generate_password_reset_token(email=settings.FIRST_SUPERUSER)
76-
data = {"new_password": "changethis", "token": token}
78+
email = random_email()
79+
password = random_lower_string()
80+
new_password = random_lower_string()
81+
82+
user = UserCreate(
83+
email=email,
84+
full_name="Test User",
85+
password=password,
86+
is_active=True,
87+
is_superuser=False,
88+
)
89+
user = create_user(session=db, user_create=user)
90+
token = generate_password_reset_token(email=email)
91+
headers = user_authentication_headers(client=client, email=email, password=password)
92+
data = {"new_password": new_password, "token": token}
93+
7794
r = client.post(
7895
f"{settings.API_V1_STR}/reset-password/",
79-
headers=superuser_token_headers,
96+
headers=headers,
8097
json=data,
8198
)
99+
82100
assert r.status_code == 200
83101
assert r.json() == {"message": "Password updated successfully"}
84102

85-
user_query = select(User).where(User.email == settings.FIRST_SUPERUSER)
103+
user_query = select(User).where(User.email == email)
86104
user = db.exec(user_query).first()
87105
assert user
88-
assert verify_password(data["new_password"], user.hashed_password)
106+
assert verify_password(new_password, user.hashed_password)
89107

90108

91109
def test_reset_password_invalid_token(

0 commit comments

Comments
 (0)