def test_request_password_change(self): # Create and activate an account self.create_account(self.USERNAME, self.PASSWORD, self.EMAIL) self.assertEqual(len(mail.outbox), 1) user = User.objects.get(username=self.USERNAME) activation_key = self.get_activation_key(user) activate_account(activation_key) request = RequestFactory().post('/password') request.user = Mock() request.site = SiteFactory() with patch('crum.get_current_request', return_value=request): # Request a password change request_password_change(self.EMAIL, self.IS_SECURE) # Verify that a new email message has been sent self.assertEqual(len(mail.outbox), 2) # Verify that the body of the message contains something that looks # like an activation link email_body = mail.outbox[0].body result = re.search(r'(?P<url>https?://[^\s]+)', email_body) self.assertIsNot(result, None)
def test_request_password_change_inactive_user(self): # Create an account, but do not activate it self.create_account(self.USERNAME, self.PASSWORD, self.EMAIL) assert len(mail.outbox) == 1 request = RequestFactory().post('/password') request.user = Mock() request.site = SiteFactory() with patch('crum.get_current_request', return_value=request): request_password_change(self.EMAIL, self.IS_SECURE) # Verify that the password change email was still sent assert len(mail.outbox) == 2
def test_request_password_change(self): # Create and activate an account self.create_account(self.USERNAME, self.PASSWORD, self.EMAIL) assert len(mail.outbox) == 1 request = RequestFactory().post('/password') request.user = Mock() request.site = SiteFactory() with patch('crum.get_current_request', return_value=request): # Request a password change request_password_change(self.EMAIL, self.IS_SECURE) # Verify that a new email message has been sent assert len(mail.outbox) == 2 # Verify that the body of the message contains something that looks # like an activation link email_body = mail.outbox[0].body result = re.search(r'(?P<url>https?://[^\s]+)', email_body) assert result is not None
def test_request_password_change_invalid_user(self): with pytest.raises(UserNotFound): request_password_change(self.EMAIL, self.IS_SECURE) # Verify that no email messages have been sent assert len(mail.outbox) == 0