Skip to content

Commit b68d4b7

Browse files
committed
fix(account): email verification by code wrong template used
1 parent db6ab11 commit b68d4b7

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

allauth/account/internal/flows/email_verification_by_code.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ def send(self, skip_enumeration_mails: bool = False) -> None:
4343
)
4444

4545
email_address = self.email_address
46-
signup = did_user_login(email_address.user) if email_address.user_id else True
46+
signup = (
47+
(not did_user_login(email_address.user)) if email_address.user_id else True
48+
)
4749
self.did_send = send_verification_email_to_address(
4850
self.request,
4951
email_address,

tests/apps/headless/account/test_email_verification_by_code.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from django.contrib.auth.models import User
55

66
import pytest
7+
from pytest_django.asserts import assertTemplateNotUsed, assertTemplateUsed
78

89
from allauth.account import app_settings
910
from allauth.account.models import EmailAddress
@@ -42,9 +43,9 @@ def test_email_verification_rate_limits_login(
4243
][0]
4344
assert flow["id"] == Flow.VERIFY_EMAIL
4445
else:
45-
assert resp.status_code == 400
46+
assert resp.status_code == HTTPStatus.BAD_REQUEST
4647
assert resp.json() == {
47-
"status": 400,
48+
"status": HTTPStatus.BAD_REQUEST,
4849
"errors": [
4950
{
5051
"message": "Too many failed login attempts. Try again later.",
@@ -100,7 +101,7 @@ def test_email_verification_rate_limits_submitting_codes(
100101
)
101102
if i < app_settings.EMAIL_VERIFICATION_BY_CODE_MAX_ATTEMPTS:
102103
assert resp.json() == {
103-
"status": 400,
104+
"status": HTTPStatus.BAD_REQUEST,
104105
"errors": [
105106
{
106107
"message": "Incorrect code.",
@@ -109,7 +110,7 @@ def test_email_verification_rate_limits_submitting_codes(
109110
}
110111
],
111112
}
112-
assert resp.status_code == 400
113+
assert resp.status_code == HTTPStatus.BAD_REQUEST
113114
else:
114115
assert resp.status_code == 409
115116

@@ -136,6 +137,9 @@ def test_add_email(
136137
)
137138
assert resp.status_code == HTTPStatus.OK
138139

140+
assertTemplateNotUsed(resp, "account/email/email_confirmation_signup_message.txt")
141+
assertTemplateUsed(resp, "account/email/email_confirmation_message.txt")
142+
139143
# It's in the response, albeit unverified.
140144
assert len(resp.json()["data"]) == 2
141145
email_map = {addr["email"]: addr for addr in resp.json()["data"]}
@@ -147,9 +151,9 @@ def test_add_email(
147151
data={"key": "key"},
148152
content_type="application/json",
149153
)
150-
assert resp.status_code == 400
154+
assert resp.status_code == HTTPStatus.BAD_REQUEST
151155
assert resp.json() == {
152-
"status": 400,
156+
"status": HTTPStatus.BAD_REQUEST,
153157
"errors": [
154158
{"message": "Incorrect code.", "code": "incorrect_code", "param": "key"}
155159
],
@@ -204,6 +208,8 @@ def test_signup_with_email_verification(
204208
},
205209
content_type="application/json",
206210
)
211+
assertTemplateUsed(resp, "account/email/email_confirmation_signup_message.txt")
212+
207213
assert resp.status_code == HTTPStatus.UNAUTHORIZED
208214
assert User.objects.filter(email=email).exists()
209215
data = resp.json()

0 commit comments

Comments
 (0)