6464baebd2
Quand l'utilisateur valide son email, il est maintenant connecté automatiquement via login_user() et redirigé directement vers /compte/abonnement/mes-infos au lieu de /connexion?verified=1. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
from src.auth import db, tokens
|
|
|
|
|
|
def test_verify_email_valid_token_logs_in_and_redirects_to_mes_infos(
|
|
client, users_db_path
|
|
):
|
|
db.init_schema()
|
|
uid = db.create_user("a@b.c", "hash")
|
|
token = tokens.create_verification_token(uid)
|
|
|
|
resp = client.get(f"/auth/verify-email?token={token}")
|
|
assert resp.status_code == 302
|
|
assert "/compte/abonnement/mes-infos" in resp.headers["Location"]
|
|
assert db.get_user_by_id(uid)["email_verified"] == 1
|
|
with client.session_transaction() as sess:
|
|
assert sess.get("_user_id") == str(uid)
|
|
|
|
|
|
def test_verify_email_invalid_token(client):
|
|
resp = client.get("/auth/verify-email?token=invalide")
|
|
assert "error=invalid_token" in resp.headers["Location"]
|
|
|
|
|
|
def test_verify_email_missing_token(client):
|
|
resp = client.get("/auth/verify-email")
|
|
assert "error=invalid_token" in resp.headers["Location"]
|
|
|
|
|
|
def test_verify_email_single_use(client, users_db_path):
|
|
db.init_schema()
|
|
uid = db.create_user("a@b.c", "h")
|
|
token = tokens.create_verification_token(uid)
|
|
client.get(f"/auth/verify-email?token={token}")
|
|
resp = client.get(f"/auth/verify-email?token={token}")
|
|
assert "error=invalid_token" in resp.headers["Location"]
|