Skip to content

Commit 1523c20

Browse files
authored
šŸ› Refactor reset password test to create normal user instead of using super user (#1499)
1 parent f8e35a5 commit 1523c20

File tree

1 file changed

+26
-12
lines changed

1 file changed

+26
-12
lines changed

ā€Žbackend/app/tests/api/routes/test_login.py

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

33
from fastapi.testclient import TestClient
4-
from sqlmodel import Session, select
4+
from sqlmodel import Session
55

66
from app.core.config import settings
77
from app.core.security import verify_password
8-
from app.models import User
8+
from app.crud import create_user
9+
from app.models import UserCreate
10+
from app.tests.utils.user import user_authentication_headers
11+
from app.tests.utils.utils import random_email, random_lower_string
912
from app.utils import generate_password_reset_token
1013

1114

@@ -69,23 +72,34 @@ def test_recovery_password_user_not_exits(
6972
assert r.status_code == 404
7073

7174

72-
def test_reset_password(
73-
client: TestClient, superuser_token_headers: dict[str, str], db: Session
74-
) -> None:
75-
token = generate_password_reset_token(email=settings.FIRST_SUPERUSER)
76-
data = {"new_password": "changethis", "token": token}
75+
def test_reset_password(client: TestClient, db: Session) -> None:
76+
email = random_email()
77+
password = random_lower_string()
78+
new_password = random_lower_string()
79+
80+
user_create = UserCreate(
81+
email=email,
82+
full_name="Test User",
83+
password=password,
84+
is_active=True,
85+
is_superuser=False,
86+
)
87+
user = create_user(session=db, user_create=user_create)
88+
token = generate_password_reset_token(email=email)
89+
headers = user_authentication_headers(client=client, email=email, password=password)
90+
data = {"new_password": new_password, "token": token}
91+
7792
r = client.post(
7893
f"{settings.API_V1_STR}/reset-password/",
79-
headers=superuser_token_headers,
94+
headers=headers,
8095
json=data,
8196
)
97+
8298
assert r.status_code == 200
8399
assert r.json() == {"message": "Password updated successfully"}
84100

85-
user_query = select(User).where(User.email == settings.FIRST_SUPERUSER)
86-
user = db.exec(user_query).first()
87-
assert user
88-
assert verify_password(data["new_password"], user.hashed_password)
101+
db.refresh(user)
102+
assert verify_password(new_password, user.hashed_password)
89103

90104

91105
def test_reset_password_invalid_token(

0 commit comments

Comments
Ā (0)