def test_password_reset_form(self): form_data = {'email': self.user.email} form = PasswordResetForm(data=form_data) self.assertEqual(form.is_valid(), True) request = self.factory.post(reverse('password-reset'), data={'email': self.user.email}) form.save(request=request) self.assertEqual(form.cleaned_data['email'], self.user.email) self.assertEqual(len(mail.outbox), 1)
def test_nonexistant_email(self): """ Test nonexistent email address. This should not fail because it would expose information about registered users. """ data = {'email': '*****@*****.**'} form = PasswordResetForm(data) self.assertTrue(form.is_valid()) self.assertEqual(len(mail.outbox), 0)
def test_inactive_user(self): """ Test that inactive user cannot receive password reset email. """ user = UserFactory(is_active=False) form = PasswordResetForm({'email': user.email}) self.assertTrue(form.is_valid()) form.save() self.assertEqual(len(mail.outbox), 0)
def test_unusable_password(self): user = UserFactory() data = {"email": user.email} form = PasswordResetForm(data) self.assertTrue(form.is_valid()) user.set_unusable_password() user.save() form = PasswordResetForm(data) # The form itself is valid, but no email is sent self.assertTrue(form.is_valid()) form.save() self.assertEqual(len(mail.outbox), 0)
def test_invalid_email(self): data = {'email': 'not valid'} form = PasswordResetForm(data) self.assertFalse(form.is_valid()) self.assertEqual(form['email'].errors, [_('Enter a valid email address.')])