This commit is contained in:
@@ -10,7 +10,8 @@ from django.urls import reverse
|
||||
from ..forms import LoginForm, SetPasswordForm, CreateAndSendPasswordForm
|
||||
|
||||
TEST_USERNAME = 'root@localhost'
|
||||
TEST_PASSWORD = 'me||ön 21ABll'
|
||||
TEST_STRONG_PASSWORD = 'me||ön 21ABll'
|
||||
TEST_WEAK_PASSWORD = 'mellon'
|
||||
TEST_EMAIL = TEST_USERNAME
|
||||
|
||||
|
||||
@@ -31,16 +32,21 @@ class ViewsTestCase(TestCase):
|
||||
|
||||
# Some messages
|
||||
cls.wrong_credentials_message = gettext('Benutzername oder Passwort falsch.')
|
||||
cls.login_message = gettext('Benutzer angemeldet: %(username)s')
|
||||
cls.logout_message = gettext('Benutzer abgemeldet.')
|
||||
cls.set_password_message = gettext('Passwort gespeichert.')
|
||||
cls.weak_password_warning_message = 'Dein Passwort entspricht nicht mehr den aktuellen Passwortrichtlinien.'
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
# Need a test user
|
||||
self.test_username = TEST_USERNAME
|
||||
self.test_password = TEST_PASSWORD
|
||||
self.test_password = TEST_STRONG_PASSWORD
|
||||
self.test_email = TEST_EMAIL
|
||||
model = get_user_model()
|
||||
self.user = model.objects.create_user(username=TEST_USERNAME, password=TEST_PASSWORD, email=TEST_EMAIL)
|
||||
self.user = model.objects.create_user(username=self.test_username,
|
||||
password=self.test_password,
|
||||
email=self.test_email)
|
||||
|
||||
def test_integrated_login_get(self):
|
||||
response = self.client.get(self.login_url)
|
||||
@@ -74,7 +80,7 @@ class ViewsTestCase(TestCase):
|
||||
|
||||
def test_integrated_login_succeed(self):
|
||||
username = self.user.username
|
||||
message = gettext('Benutzer angemeldet: %(username)s') % {'username': username}
|
||||
message = self.login_message % {'username': username}
|
||||
|
||||
response = self.client.post(self.login_url, {'username': username, 'password': self.test_password})
|
||||
self.assertEqual(response.status_code, 302)
|
||||
@@ -82,6 +88,30 @@ class ViewsTestCase(TestCase):
|
||||
|
||||
response = self.client.get(response.url)
|
||||
self.assertContains(response, message)
|
||||
self.assertNotContains(response, self.weak_password_warning_message)
|
||||
|
||||
self.assertTrue(response.context['user'].is_authenticated, 'Login failed')
|
||||
|
||||
def test_integrated_login_weak_password(self):
|
||||
username = self.user.username
|
||||
password = TEST_WEAK_PASSWORD
|
||||
|
||||
message = self.login_message % {'username': username}
|
||||
|
||||
user_model = get_user_model()
|
||||
user = user_model.objects.get(username=username)
|
||||
user.set_password(password)
|
||||
user.save()
|
||||
|
||||
with self.assertLogs('dav_auth.views', level='WARNING') as cm:
|
||||
response = self.client.post(self.login_url, {'username': username, 'password': password})
|
||||
self.assertStartsWith(cm.output[0], 'WARNING:dav_auth.views:Weak password')
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(response.url, self.login_redirect_url)
|
||||
|
||||
response = self.client.get(response.url)
|
||||
self.assertContains(response, message)
|
||||
self.assertContains(response, self.weak_password_warning_message)
|
||||
|
||||
self.assertTrue(response.context['user'].is_authenticated, 'Login failed')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user