From 0f9a019945821d85e97800c70efa88af5b3b5998 Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Fri, 20 May 2016 13:43:31 +0100 Subject: [PATCH] Make the get_user_by_email_address case insenstive. --- app/dao/users_dao.py | 4 +++- tests/app/dao/test_users_dao.py | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/dao/users_dao.py b/app/dao/users_dao.py index 56626b1f9..1a240fecc 100644 --- a/app/dao/users_dao.py +++ b/app/dao/users_dao.py @@ -1,6 +1,8 @@ import random from datetime import (datetime, timedelta) +from sqlalchemy import func + from app import db from app.models import (User, VerifyCode) @@ -79,7 +81,7 @@ def get_model_users(user_id=None): def get_user_by_email(email): - return User.query.filter_by(email_address=email).one() + return User.query.filter(func.lower(User.email_address) == func.lower(email)).one() def increment_failed_login_count(user): diff --git a/tests/app/dao/test_users_dao.py b/tests/app/dao/test_users_dao.py index 2a36bf1ba..7afcf72ce 100644 --- a/tests/app/dao/test_users_dao.py +++ b/tests/app/dao/test_users_dao.py @@ -97,6 +97,12 @@ def test_get_user_by_email(sample_user): assert sample_user == user_from_db +def test_get_user_by_email_is_case_insensitive(sample_user): + email = sample_user.email_address + user_from_db = get_user_by_email(email.upper()) + assert sample_user == user_from_db + + def test_should_delete_all_verification_codes_more_than_one_day_old(sample_user): make_verify_code(sample_user, age=timedelta(hours=24), code="54321") make_verify_code(sample_user, age=timedelta(hours=24), code="54321")