Просмотр исходного кода

Add tests to password reset form

Rafał Pitoń 7 лет назад
Родитель
Сommit
60c8bc8989
1 измененных файлов с 29 добавлено и 0 удалено
  1. 29 0
      misago/users/tests/test_forgottenpassword_views.py

+ 29 - 0
misago/users/tests/test_forgottenpassword_views.py

@@ -23,6 +23,18 @@ class ForgottenPasswordViewsTests(UserTestCase):
         response = self.client.get(reverse('misago:forgotten-password'))
         self.assertEqual(response.status_code, 200)
 
+    def test_authenticated_request_unusable_password_view_returns_200(self):
+        """request new password view returns 200 for authenticated with unusable password"""
+        user = self.get_authenticated_user()
+        user.set_password(None)
+        user.save()
+
+        self.assertFalse(user.has_usable_password())
+        self.login_user(user)
+
+        response = self.client.get(reverse('misago:forgotten-password'))
+        self.assertEqual(response.status_code, 200)
+
     def test_change_password_on_banned(self):
         """change banned user password errors"""
         test_user = UserModel.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
@@ -96,3 +108,20 @@ class ForgottenPasswordViewsTests(UserTestCase):
             )
         )
         self.assertContains(response, password_token)
+
+    def test_change_password_unusable_password_form(self):
+        """set user first password form displays for valid token"""
+        test_user = UserModel.objects.create_user('Bob', 'bob@test.com')
+
+        password_token = make_password_change_token(test_user)
+
+        response = self.client.get(
+            reverse(
+                'misago:forgotten-password-change-form',
+                kwargs={
+                    'pk': test_user.pk,
+                    'token': password_token,
+                },
+            )
+        )
+        self.assertContains(response, password_token)