diff --git a/apps/auth/templates/auth/password_reset.html b/apps/auth/templates/auth/password_reset.html new file mode 100644 index 00000000..8af5626f --- /dev/null +++ b/apps/auth/templates/auth/password_reset.html @@ -0,0 +1,2 @@ +Someone asked for password reset for email {{ email }}. Follow the link below: +{{ protocol}}://{{ domain }}{% url 'lilcity:password_reset_confirm' uidb64=uid token=token %} \ No newline at end of file diff --git a/apps/auth/templates/auth/password_reset_confirm.html b/apps/auth/templates/auth/password_reset_confirm.html new file mode 100644 index 00000000..44d9d64f --- /dev/null +++ b/apps/auth/templates/auth/password_reset_confirm.html @@ -0,0 +1,12 @@ +{% if validlink %} +
+ The password reset link was invalid, possibly because it has already been used. + Please request a new password reset. +
\ No newline at end of file diff --git a/apps/auth/templates/auth/password_reset_subject.txt b/apps/auth/templates/auth/password_reset_subject.txt new file mode 100644 index 00000000..bca0a5e0 --- /dev/null +++ b/apps/auth/templates/auth/password_reset_subject.txt @@ -0,0 +1 @@ +Password reset \ No newline at end of file diff --git a/apps/auth/tests/test_password_reset.py b/apps/auth/tests/test_password_reset.py new file mode 100644 index 00000000..4c1c8559 --- /dev/null +++ b/apps/auth/tests/test_password_reset.py @@ -0,0 +1,20 @@ +from django.test import TestCase, Client +from django.urls import reverse +from django.core import mail +from django.contrib.auth import get_user_model + + +User = get_user_model() + + +class PasswordResetTest(TestCase): + def setUp(self): + self.url = reverse("lilcity:password_reset") + self.user = User.objects.create_user(username='Alice', email="example@example.com", password='1234') + self.client = Client() + + def test_send_email_when_password_reset(self): + response = self.client.post(self.url, {"email": "example@example.com"}) + + self.assertEqual(True, response.json()["success"]) + self.assertEqual(len(mail.outbox), 1) diff --git a/apps/auth/urls.py b/apps/auth/urls.py index fc8dfe57..d893e6c7 100644 --- a/apps/auth/urls.py +++ b/apps/auth/urls.py @@ -7,4 +7,8 @@ urlpatterns = [ path('logout/', views.LogoutView.as_view(), name="logout"), path('login/', views.LoginView.as_view(), name="login"), path('verification-email/