chore: improve coverage

This commit is contained in:
2025-01-17 00:36:41 +01:00
parent 0909176257
commit 7fe4fefe48
2 changed files with 53 additions and 16 deletions
+2 -8
View File
@@ -3,19 +3,13 @@ from django.contrib.auth.forms import PasswordResetForm as BasePasswordResetForm
from django.contrib.auth.forms import SetPasswordForm as BaseSetPasswordForm
from django.contrib.auth.tokens import default_token_generator
from django.core.exceptions import ValidationError
from django.utils.text import gettext_lazy as _
class PasswordResetForm(BasePasswordResetForm):
pass
def validate_token(token):
is_valid = default_token_generator.check_token(token)
if not is_valid:
raise ValidationError(_("El token no es válido o ha expirado"))
class SetPasswordForm(BaseSetPasswordForm):
token = forms.CharField(
required=True,
@@ -35,6 +29,6 @@ class SetPasswordForm(BaseSetPasswordForm):
try:
self.validate_token()
except ValidationError as e:
self.add_error(self.token, str(e))
self.add_error('token', str(e))
return False
return super().is_valid()
+51 -8
View File
@@ -1,9 +1,9 @@
from django.contrib.auth import get_user_model
from django.contrib.auth.tokens import default_token_generator
from django.shortcuts import reverse
from django.test import TransactionTestCase
from django.contrib.auth.tokens import default_token_generator
from django.utils.http import urlsafe_base64_encode
from django.utils.encoding import force_bytes
from django.utils.http import urlsafe_base64_encode
User = get_user_model()
@@ -41,7 +41,7 @@ class TestResetPassword(TransactionTestCase):
response = self.client.post(
reverse("web:reset_password"),
{
"email": 'vanpiro@noesiten.com',
"email": "vanpiro@noesiten.com",
},
)
@@ -53,7 +53,9 @@ class TestResetPassword(TransactionTestCase):
uidb64 = urlsafe_base64_encode(force_bytes(self.user.pk))
response = self.client.get(
reverse("web:reset_password_confirm", kwargs={"uidb64": uidb64, "token": token}),
reverse(
"web:reset_password_confirm", kwargs={"uidb64": uidb64, "token": token}
),
)
assert response.status_code == 200
@@ -63,17 +65,58 @@ class TestResetPassword(TransactionTestCase):
form_token = default_token_generator.make_token(self.user)
uidb64 = urlsafe_base64_encode(force_bytes(self.user.pk))
new_password = '89733wy29'
new_password = "89733wy29"
response = self.client.post(
reverse("web:reset_password_confirm", kwargs={"uidb64": uidb64, "token": token}), {
reverse(
"web:reset_password_confirm", kwargs={"uidb64": uidb64, "token": token}
),
{
"token": form_token,
"new_password1": new_password,
"new_password2": new_password,
}
},
)
assert response.status_code == 302
assert response.url == reverse('web:login')
assert response.url == reverse("web:login")
self.user.refresh_from_db()
assert self.user.check_password(new_password)
def test_reset_password_confirm_distinct_password(self):
token = default_token_generator.make_token(self.user)
form_token = default_token_generator.make_token(self.user)
uidb64 = urlsafe_base64_encode(force_bytes(self.user.pk))
new_password = "89733wy29"
response = self.client.post(
reverse(
"web:reset_password_confirm", kwargs={"uidb64": uidb64, "token": token}
),
{
"token": form_token,
"new_password1": new_password,
"new_password2": "otherpassw13",
},
)
assert response.status_code == 200
def test_reset_password_confirm_invalid_token(self):
token = default_token_generator.make_token(self.user)
form_token = "invalid token"
uidb64 = urlsafe_base64_encode(force_bytes(self.user.pk))
new_password = "89733wy29"
response = self.client.post(
reverse(
"web:reset_password_confirm", kwargs={"uidb64": uidb64, "token": token}
),
{
"token": form_token,
"new_password1": new_password,
"new_password2": new_password,
},
)
assert response.status_code == 200