mirror of
https://github.com/simple-login/app.git
synced 2024-11-16 08:58:30 +01:00
5e48d86efa
* Revert "Revert "Use canonical email when registering users (#1458)" (#1474)"
This reverts commit c8ab1c747e
.
* Only canonicalize gmail and proton
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
82 lines
2.2 KiB
Python
82 lines
2.2 KiB
Python
from flask import url_for
|
|
|
|
from app.db import Session
|
|
from app.utils import canonicalize_email, random_string
|
|
from tests.utils import create_new_user
|
|
|
|
|
|
def test_unactivated_user_login(flask_client):
|
|
user = create_new_user()
|
|
user.activated = False
|
|
Session.commit()
|
|
|
|
r = flask_client.post(
|
|
url_for("auth.login"),
|
|
data={"email": user.email, "password": "password"},
|
|
follow_redirects=True,
|
|
)
|
|
|
|
assert r.status_code == 200
|
|
assert (
|
|
b"Please check your inbox for the activation email. You can also have this email re-sent"
|
|
in r.data
|
|
)
|
|
|
|
|
|
def test_non_canonical_login(flask_client):
|
|
email = f"pre.{random_string(10)}@gmail.com"
|
|
name = f"NAME-{random_string(10)}"
|
|
user = create_new_user(email, name)
|
|
Session.commit()
|
|
|
|
r = flask_client.post(
|
|
url_for("auth.login"),
|
|
data={"email": user.email, "password": "password"},
|
|
follow_redirects=True,
|
|
)
|
|
|
|
assert r.status_code == 200
|
|
assert name.encode("utf-8") in r.data
|
|
|
|
canonical_email = canonicalize_email(email)
|
|
assert canonical_email != email
|
|
|
|
flask_client.get(url_for("auth.logout"))
|
|
|
|
r = flask_client.post(
|
|
url_for("auth.login"),
|
|
data={"email": canonical_email, "password": "password"},
|
|
follow_redirects=True,
|
|
)
|
|
|
|
assert r.status_code == 200
|
|
assert name.encode("utf-8") not in r.data
|
|
|
|
|
|
def test_canonical_login_with_non_canonical_email(flask_client):
|
|
suffix = f"{random_string(10)}@gmail.com"
|
|
canonical_email = f"pre{suffix}"
|
|
non_canonical_email = f"pre.{suffix}"
|
|
name = f"NAME-{random_string(10)}"
|
|
create_new_user(canonical_email, name)
|
|
Session.commit()
|
|
|
|
r = flask_client.post(
|
|
url_for("auth.login"),
|
|
data={"email": non_canonical_email, "password": "password"},
|
|
follow_redirects=True,
|
|
)
|
|
|
|
assert r.status_code == 200
|
|
assert name.encode("utf-8") in r.data
|
|
|
|
flask_client.get(url_for("auth.logout"))
|
|
|
|
r = flask_client.post(
|
|
url_for("auth.login"),
|
|
data={"email": canonical_email, "password": "password"},
|
|
follow_redirects=True,
|
|
)
|
|
|
|
assert r.status_code == 200
|
|
assert name.encode("utf-8") in r.data
|