def test_unreg_user_can_register(self): user = UnregUserFactory() auth.register_unconfirmed( username=user.username, password='******', fullname='Rosie', ) user.reload() 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_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_html(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_html(different_name, res)
def test_confirm_email(self, mock_mail): user = UnregUserFactory() auth.register_unconfirmed( username=user.username, password='******', fullname='Rosie', ) user.reload() 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() mock_mail.assert_called() 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.objects.filter( data__auth_user_id=user._id).order_by('-modified').first() assert_equal(len(session.data['status']), 1)
def test_withdraw_request_does_not_send_email_to_unregistered_admins( self, mock_send_mail, app, user, public_registration, public_url, public_payload): unreg = UnregUserFactory() with disconnected_from_listeners(contributor_added): public_registration.add_unregistered_contributor( unreg.fullname, unreg.email, auth=Auth(user), permissions=permissions.ADMIN, existing_user=unreg, save=True) res = app.put_json_api(public_url, public_payload, auth=user.auth) assert res.status_code == 200 # Only the creator gets an email; the unreg user does not get emailed assert public_registration._contributors.count() == 2 assert mock_send_mail.call_count == 1
def test_unregistered_user_csl(self): # Tests the csl name for an unregistered user referrer = UserFactory() project = NodeFactory(creator=referrer) user = UnregUserFactory() user.add_unclaimed_record(project, given_name=user.fullname, referrer=referrer, email=fake_email()) user.save() name = user.unclaimed_records[project._primary_key]['name'].split(' ') family_name = name[-1] given_name = ' '.join(name[:-1]) assert bool( user.csl_name(project._id) == { 'given': given_name, 'family': family_name, })
def test_confirm_email(self, mock_mail): user = UnregUserFactory() auth.register_unconfirmed(username=user.username, password='******', fullname='Rosie') user.reload() 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() mock_mail.assert_called_with( osf_support_email=settings.OSF_SUPPORT_EMAIL, mimetype='html', storage_flag_is_active=False, to_addr=user.username, domain=settings.DOMAIN, user=user, mail=mails.WELCOME) 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.objects.filter( data__auth_user_id=user._id).order_by('-modified').first() assert_equal(len(session.data['status']), 1)
def test_confirm_email(self, mock_mail): user = UnregUserFactory() auth.register_unconfirmed( username=user.username, password='******', fullname='Rosie' ) user.reload() 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() mock_mail.assert_called() 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, 'domain': settings.DOMAIN, 'to_addr': user.username, 'osf_support_email': settings.OSF_SUPPORT_EMAIL }) 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.objects.filter(data__auth_user_id=user._id).order_by('-modified').first() assert_equal(len(session.data['status']), 1)
def test_unregistered_user_csl(self): # Tests the csl name for an unregistered user referrer = UserFactory() project = NodeFactory(creator=referrer) user = UnregUserFactory() user.add_unclaimed_record(project, given_name=user.fullname, referrer=referrer, email=fake_email()) user.save() name = user.unclaimed_records[project._primary_key]['name'].split(' ') family_name = name[-1] given_name = ' '.join(name[:-1]) assert bool( user.csl_name(project._id) == { 'given': given_name, 'family': family_name, } )