Example #1
0
    def test_email_resent_verification_email(self):
        """
        Ensures user receives a new verification email
        """
        user = UserFactory(is_active=False)
        self.assertEmailCount('Ativa a tua conta', 1)

        url = reverse('resend-verification')
        data = {'email': user.email}

        response = self.client.post(url, data)
        self.assertEmailCount('Ativa a tua conta', 2)
Example #2
0
    def test_email_resent_verification_email_not_sent_if_user_active(self):
        """
        Ensures user does not receive a new verification email if already active
        """
        user = UserFactory(is_active=True)
        self.assertEmailCount('Ativa a tua conta', 1)

        url = reverse('resend-verification')
        data = {'email': user.email}

        response = self.client.post(url, data)
        self.assertEmailCount('Ativa a tua conta', 1)
Example #3
0
    def test_inactive_user_can_reset_password_and_login(self):
        """
        Ensures inactive user can reset password and login
        """
        user = UserFactory(is_active=False)

        # exercise
        data = {'email': user.email}
        response = self.client.post(reverse('reset-password'), data)
        self.assert200(response)

        user.refresh_from_db()

        # exercise
        data = {
            'email': user.email,
            'token': user.token,
            'password': '******'
        }
        response = self.client.post(reverse('set-password'), data)
        self.assert200(response)

        user.refresh_from_db()

        # assert
        self.assert200(response)
        self.assertLogin(user.email, 'newpassword')
        self.assertEqual(user.is_active, True)
Example #4
0
    def test_email_reset_password_sent_to_user(self):
        """
        Ensures reset password email is sent to user
        """
        # setup
        user = UserFactory(is_active=False)

        # exercise
        data = {'email': user.email}
        response = self.client.post(reverse('reset-password'), data)

        self.assert200(response)
        self.assertEmailCount('Perdeste a tua password?', 1)
        self.assertEmailTo('Perdeste a tua password?', data.get('email'))
Example #5
0
    def test_email_account_activated_sent_to_user(self):
        """
        Ensures account activated email is sent to user
        """
        # setup
        user = UserFactory(is_active=False)

        # @FIX url pattern not correct
        url = reverse('activate-user') + '?token=' + user.token

        response = self.client.get(url)

        # assert
        self.assert200(response)
        self.assertEmailCount('Conta ativada com sucesso', 1)
        self.assertEmailTo('Conta ativada com sucesso', user.email)
Example #6
0
    def test_guest_can_set_new_password(self):
        """
        Ensures guest can set new password
        """
        # setup
        user = UserFactory(is_active=True)

        # exercise
        data = {
            'email': user.email,
            'token': user.token,
            'password': '******'
        }

        self.client.post(reverse('set-password'), data)
        self.assertLogin(user.email, 'newpassword')
Example #7
0
    def test_guest_can_start_reset_password_process(self):
        """
        Ensures guest can start reset password process
        """
        # setup
        user = UserFactory(is_active=True)

        # exercise
        url = reverse('reset-password')
        data = {'email': user.email}
        response = self.client.post(url, data)
        self.assert200(response)

        # assert validation token has been refreshed
        new_token = model.objects.get(pk=user.pk).token
        self.assertNotEqual(user.token, new_token)
Example #8
0
    def test_guest_cannot_set_new_password_without_token(self):
        """
        Ensures guest cannot set new password without token
        """
        # setup
        user = UserFactory(is_active=True)

        # exercise
        data = {
            'email': user.email,
            'password': '******'
        }

        response = self.client.post(reverse('set-password'), data)
        self.assert400(response)
        self.assertCannotLogin(user.email, 'newpassword')
Example #9
0
    def test_guest_can_activate_account(self):
        """
        Ensures guest can activate account
        """
        # setup
        # user = UserFactory(is_active=True)
        user = UserFactory(is_active=False, first_name='Joe')

        # @FIX url pattern not correct
        url = reverse('activate-user') + '?token=' + user.token

        # exercise
        response = self.client.get(url)

        # assert
        self.assert200(response)
        self.assertEqual(model.objects.get(pk=user.pk).is_active, True)
        self.assertEqual(response.data, { "message": "Activated"})