def test_raise_if_user_needs_admin_activation(self): """pipeline raises if user needs admin activation""" self.user.requires_activation = UserModel.ACTIVATION_ADMIN self.user.save() try: associate_by_email(None, {'email': self.user.email}, GithubOAuth2) self.fail("associate_by_email should raise SocialAuthFailed") except SocialAuthFailed as e: self.assertEqual( e.message, ("Your account has to be activated by site administrator before you will be " "able to sign in with GitHub."), )
def test_raise_if_user_is_inactive(self): """pipeline raises if user was inactive""" self.user.is_active = False self.user.save() try: associate_by_email(None, {'email': self.user.email}, GithubOAuth2) self.fail("associate_by_email should raise SocialAuthFailed") except SocialAuthFailed as e: self.assertEqual( e.message, ("The e-mail address associated with your GitHub account is not available for " "use on this site."), )
def test_return_user_email_inactive(self): """pipeline returns user even if they didn't activate their account manually""" self.user.requires_activation = UserModel.ACTIVATION_USER self.user.save() result = associate_by_email(None, {'email': self.user.email}, GithubOAuth2) self.assertEqual(result, {'user': self.user, 'is_new': False})
def test_skip_if_user_with_email_not_found(self): """pipeline step is skipped if no email was passed""" result = associate_by_email(None, {'email': '*****@*****.**'}, GithubOAuth2) self.assertIsNone(result)
def test_skip_if_no_email_passed(self): """pipeline step is skipped if no email was passed""" result = associate_by_email(None, {}, GithubOAuth2) self.assertIsNone(result)
def test_skip_if_user_is_already_set(self): """pipeline step is skipped if user was found by previous step""" result = associate_by_email(None, {}, GithubOAuth2, self.user) self.assertIsNone(result)
def test_return_user(self): """pipeline returns user if email was found""" result = associate_by_email(None, {'email': self.user.email}, GithubOAuth2) self.assertEqual(result, {'user': self.user, 'is_new': False})