def test_login_unregistered_user(self): user = UnregUserFactory() user.set_password('killerqueen') user.save() with assert_raises(auth.LoginNotAllowedError): # password is correct, but user is unregistered auth.login(user.username, 'killerqueen')
def test_unreg_user_can_register(self): user = UnregUserFactory() auth.register_unconfirmed( username=user.username, password='******', fullname='Rosie', ) assert_true(user.get_confirmation_token(user.username))
def test_unique_email_validator_with_unreg_user(self): class MockForm(Form): username = Field('Username', [forms.UniqueEmail(allow_unregistered=True)]) u = UnregUserFactory() f = MockForm(username=u.username) assert_true(f.validate())
def test_unreg_users_do_show_on_projects(self): unreg = UnregUserFactory(fullname='Robert Paulson') self.project = ProjectFactory( title='Glamour Rock', creator=unreg, is_public=True, ) results = query(unreg.fullname)['results'] assert_equal(len(results), 1)
def test_confirm_email(self, mock_mail): user = UnregUserFactory() auth.register_unconfirmed( username=user.username, password='******', fullname='Rosie', ) token = user.get_confirmation_token(user.username) res = self.app.get('/confirm/{}/{}'.format(user._id, token), allow_redirects=False) res = res.follow() assert_equal(res.status_code, 302) assert_in('login?service=', res.location) user.reload() assert_equal(len(mock_mail.call_args_list), 1) empty, kwargs = mock_mail.call_args kwargs['user'].reload() assert_equal(empty, ()) assert_equal(kwargs, { 'user': user, 'mimetype': 'html', 'mail': mails.WELCOME, 'to_addr': user.username, }) self.app.set_cookie(settings.COOKIE_NAME, user.get_or_create_cookie()) res = self.app.get('/confirm/{}/{}'.format(user._id, token)) res = res.follow() assert_equal(res.status_code, 302) assert_equal('/', urlparse.urlparse(res.location).path) assert_equal(len(mock_mail.call_args_list), 1) session = Session.find( Q('data.auth_user_id', 'eq', user._id) ).sort( '-date_modified' ).limit(1)[0] assert_equal(len(session.data['status']), 1)
def test_correct_name_shows_in_contributor_list(self): name1, email = fake.name(), fake.email() UnregUserFactory(fullname=name1, email=email) name2, email = fake.name(), fake.email() # Added with different name self.project.add_unregistered_contributor(fullname=name2, email=email, auth=Auth(self.referrer)) self.project.save() res = self.app.get(self.project.url, auth=self.referrer.auth) # Correct name is shown assert_in(name2, res) assert_not_in(name1, res)
def test_POST_retraction_does_not_send_email_to_unregistered_admins(self, mock_send_mail): unreg = UnregUserFactory() self.registration.add_contributor( unreg, auth=Auth(self.user), permissions=['read', 'write', 'admin'] ) self.registration.save() self.app.post_json( self.retraction_post_url, {'justification': ''}, auth=self.user.auth, ) # Only the creator gets an email; the unreg user does not get emailed assert_equal(mock_send_mail.call_count, 1)
def test_correct_display_name_is_shown_at_claim_page(self): original_name = fake.name() unreg = UnregUserFactory(fullname=original_name) different_name = fake.name() new_user = self.project.add_unregistered_contributor( email=unreg.username, fullname=different_name, auth=Auth(self.referrer), ) self.project.save() claim_url = new_user.get_claim_url(self.project._primary_key) res = self.app.get(claim_url) # Correct name (different_name) should be on page assert_in(different_name, res)
def test_unreg_users_dont_show_in_search(self): unreg = UnregUserFactory() contribs = search.search_contributor(unreg.fullname) assert_equal(len(contribs['users']), 0)