Skip to content

Commit e90143f

Browse files
committed
Chane get_user_by_email to be case insensetive.
1 parent 88c83cc commit e90143f

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

backend/app/crud.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import uuid
22
from typing import Any
33

4-
from sqlmodel import Session, select
4+
from sqlmodel import Session, func, select
55

66
from app.core.security import get_password_hash, verify_password
77
from app.models import Item, ItemCreate, User, UserCreate, UserUpdate
@@ -32,7 +32,7 @@ def update_user(*, session: Session, db_user: User, user_in: UserUpdate) -> Any:
3232

3333

3434
def get_user_by_email(*, session: Session, email: str) -> User | None:
35-
statement = select(User).where(User.email == email)
35+
statement = select(User).where(func.lower(User.email) == func.lower(email))
3636
session_user = session.exec(statement).first()
3737
return session_user
3838

backend/app/tests/crud/test_user.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,3 +89,27 @@ def test_update_user(db: Session) -> None:
8989
assert user_2
9090
assert user.email == user_2.email
9191
assert verify_password(new_password, user_2.hashed_password)
92+
93+
94+
def test_get_user_by_email(db: Session) -> None:
95+
password = random_lower_string()
96+
email = random_email()
97+
user_in = UserCreate(email=email, password=password, is_superuser=True)
98+
crud.create_user(session=db, user_create=user_in)
99+
user = crud.get_user_by_email(session=db, email=email)
100+
assert user
101+
user_2 = db.get(User, user.id)
102+
assert user_2
103+
assert user.email == user_2.email
104+
105+
106+
def test_get_user_by_email_case_insesetive(db: Session) -> None:
107+
password = random_lower_string()
108+
email = random_email().lower()
109+
user_in = UserCreate(email=email, password=password, is_superuser=True)
110+
crud.create_user(session=db, user_create=user_in)
111+
user = crud.get_user_by_email(session=db, email=email.upper())
112+
assert user
113+
user_2 = db.get(User, user.id)
114+
assert user_2
115+
assert user.email == user_2.email

0 commit comments

Comments
 (0)