Esempio n. 1
0
    def test_save(self):
        User.objects.create(
            username=self.USERNAME,
            password=hashers.make_password(self.PASSWORD),
            email=self.EMAIL,
            is_active=True,
        )

        # An existing user
        with mock.patch(
                "user.forms.UsernameBasedPasswordResetForm.send_mail") as m:
            form = UsernameBasedPasswordResetForm()
            form.cleaned_data = {"username": self.USERNAME}
            form.save(domain_override="example.com",
                      from_email=self.FROM_EMAIL)
            self.assertTrue(m.called)
            args, kwargs = m.call_args
            self.assertEqual(args[3], self.FROM_EMAIL)  # from_email
            self.assertEqual(args[4], self.EMAIL)  # user_email

        # An unknown user
        with mock.patch(
                "user.forms.UsernameBasedPasswordResetForm.send_mail") as m:
            form = UsernameBasedPasswordResetForm()
            form.cleaned_data = {"username": "******"}
            form.save(domain_override="example.com",
                      from_email=self.FROM_EMAIL)
            self.assertFalse(m.called)
Esempio n. 2
0
    def test_get_user(self):
        User.objects.create(username=self.USERNAME, password=hashers.make_password(self.PASSWORD),
                            email=self.EMAIL, is_active=True)
        form = UsernameBasedPasswordResetForm()

        # An existing user
        user = form.get_user(self.USERNAME)
        self.assertEqual(getattr(user, User.USERNAME_FIELD), self.USERNAME)
        self.assertEqual(getattr(user, User.EMAIL_FIELD), self.EMAIL)

        # An unknown user
        unknown = form.get_user('unknown')
        self.assertIsNone(unknown)
Esempio n. 3
0
    def test_password_reset_with_invalid_username(self):
        user = self._create_user("testuser",
                                 authenticate_type=User.AUTH_TYPE_LDAP)

        # testing this view class requires a complicated client.
        # instead of that, we call the override method directly for now.
        # see also django tests/auth_tests/client.py
        view = PasswordReset()

        form_with_unknown_user = UsernameBasedPasswordResetForm(
            {"username": "******"})
        form_with_unknown_user.is_valid()
        resp = view.form_valid(form_with_unknown_user)
        self.assertEqual(resp.status_code, 400)

        form_with_ldap_user = UsernameBasedPasswordResetForm(
            {"username": user.username})
        form_with_ldap_user.is_valid()
        resp = view.form_valid(form_with_ldap_user)
        self.assertEqual(resp.status_code, 400)