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)
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)
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)
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'))
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)
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')
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)
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')
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"})