fix(auth): corriger le lien de validation email et l'isolation des tests
Le lien de vérification pointait vers la page Dash /verification-email (qui se contente de rediriger vers /connexion) au lieu de la route backend /auth/verify-email qui consomme réellement le token et marque l'email comme vérifié. Conséquence : l'email n'était jamais validé et le login renvoyait email_not_verified en boucle. Ajoute aussi MAIL_SUPPRESS_SEND=true au bloc env de pytest : sans cela, le load_dotenv() de src.app injectait MAIL_SUPPRESS_SEND=false depuis le .env local, désactivant la suppression d'envoi et faisant échouer les tests d'auth qui envoient un email (selon l'ordre d'import). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -53,6 +53,7 @@ env = [
|
||||
"USERS_DB_PATH=tests/users.test.sqlite",
|
||||
"SECRET_KEY=test-secret-do-not-use-in-prod",
|
||||
"MAIL_FROM=test@decp.info",
|
||||
"MAIL_SUPPRESS_SEND=true",
|
||||
"APP_BASE_URL=http://localhost:8050",
|
||||
"SMTP_HOST=localhost",
|
||||
"SMTP_PORT=25",
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ def _send(
|
||||
|
||||
|
||||
def send_verification_email(email: str, token: str) -> None:
|
||||
link = f"{_base_url()}/verification-email?token={token}"
|
||||
link = f"{_base_url()}/auth/verify-email?token={token}"
|
||||
_send(
|
||||
"Vérification de votre adresse email — decp.info",
|
||||
email,
|
||||
|
||||
@@ -29,8 +29,8 @@ def test_send_verification_email(mail_app):
|
||||
assert len(outbox) == 1
|
||||
msg = outbox[0]
|
||||
assert msg.recipients == ["a@b.c"]
|
||||
assert "verification-email?token=TOKEN123" in msg.body
|
||||
assert "verification-email?token=TOKEN123" in msg.html
|
||||
assert "/auth/verify-email?token=TOKEN123" in msg.body
|
||||
assert "/auth/verify-email?token=TOKEN123" in msg.html
|
||||
|
||||
|
||||
def test_send_reset_email(mail_app):
|
||||
|
||||
Reference in New Issue
Block a user