Skip to content

Commit

Permalink
[#640] Added tests
Browse files Browse the repository at this point in the history
  • Loading branch information
vaszig committed May 30, 2022
1 parent f0c69d7 commit 3b59b35
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 7 deletions.
51 changes: 46 additions & 5 deletions src/open_inwoner/accounts/tests/test_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

from open_inwoner.configurations.models import SiteConfiguration

from ..choices import LoginTypeChoices
from ..forms import CustomPasswordResetForm
from ..models import User
from .factories import ContactFactory, InviteFactory, UserFactory

Expand Down Expand Up @@ -290,19 +292,58 @@ def test_password_reset_confirm_custom_template_is_rendered(self):
).follow()
self.assertContains(confirm_response, _("Mijn wachtwoord wijzigen"))

def test_custom_password_reset_form_sends_email_when_user_is_default(self):
self.app.post(reverse("password_reset"), {"email": self.user.email})
self.assertEqual(len(mail.outbox), 1)

def test_custom_password_reset_form_does_not_send_email_when_user_is_digid(self):
digid_user = UserFactory(login_type=LoginTypeChoices.digid)
self.app.post(reverse("password_reset"), {"email": digid_user.email})
self.assertEqual(len(mail.outbox), 0)

class TestPasswordChangeTemplates(WebTest):

class TestPasswordChange(WebTest):
def setUp(self):
self.user = UserFactory()

def test_password_change_button_is_rendered(self):
response = self.app.get(reverse("accounts:my_profile"), user=self.user)
self.assertContains(response, _("Wijzig wachtwoord"))

def test_password_change_form_custom_template_is_rendered(self):
response = self.app.get(reverse("password_change"), user=self.user)
self.assertContains(response, _("Wachtwoordwijziging"))

def test_password_change_form_done_custom_template_is_rendered(self):
response = self.app.get(reverse("password_change_done"), user=self.user)
self.assertContains(response, _("Uw wachtwoord is gewijzigd."))

def test_password_change_button_is_rendered_with_email_backend(self):
self.client.force_login(self.user)
session = self.client.session
session[
"_auth_user_backend"
] = "open_inwoner.accounts.backends.UserModelEmailBackend"
session.save()
response = self.client.get(reverse("accounts:my_profile"))
self.assertContains(response, _("Wijzig wachtwoord"))

def test_password_change_button_is_not_rendered_with_digid_backend(self):
digid_user = UserFactory(login_type=LoginTypeChoices.digid)
self.client.force_login(digid_user)
session = self.client.session
session["_auth_user_backend"] = "digid_eherkenning.mock.backends.DigiDBackend"
session.save()
response = self.client.get(reverse("accounts:my_profile"))
self.assertNotContains(response, _("Wijzig wachtwoord"))

def test_digid_user_is_redirected_to_root_if_password_change_is_accessed(self):
digid_user = UserFactory(login_type=LoginTypeChoices.digid)
response = self.app.get(reverse("password_change"), user=digid_user)
self.assertEqual(response.status_code, 302)
self.assertRedirects(response, reverse("root"))

def test_anonymous_user_is_redirected_to_login_page_if_password_change_is_accessed(
self,
):
response = self.app.get(reverse("password_change"))
expected_url = (
furl(reverse("login")).add({"next": reverse("password_change")}).url
)
self.assertRedirects(response, expected_url)
4 changes: 2 additions & 2 deletions src/open_inwoner/accounts/views/auth.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from django.contrib.auth.mixins import UserPassesTestMixin
from django.shortcuts import redirect
from django.urls import reverse
from django.contrib.auth.views import (
PasswordChangeView,
PasswordResetConfirmView,
PasswordResetView,
)
from django.shortcuts import redirect
from django.urls import reverse
from django.utils.translation import gettext as _

from open_inwoner.utils.views import LogMixin
Expand Down

0 comments on commit 3b59b35

Please sign in to comment.