def _create_user(self, form, handler): data = form.data existing_user_id = session.get('register_pending_user') if existing_user_id: # Get pending user and set it as non-pending user = User.get(existing_user_id) user.is_pending = False else: user = User(first_name=data['first_name'], last_name=data['last_name'], email=data['email'], address=data.get('address', ''), phone=data.get('phone', ''), affiliation=data['affiliation']) identity = handler.create_identity(data) user.identities.add(identity) user.secondary_emails = handler.extra_emails - {user.email} user.favorite_users.add(user) db.session.add(user) minfo = HelperMaKaCInfo.getMaKaCInfoInstance() timezone = session.timezone if timezone == 'LOCAL': timezone = minfo.getTimezone() user.settings.set('timezone', timezone) user.settings.set('lang', session.lang or minfo.getLang()) handler.update_user(user, form) db.session.flush() login_user(user, identity) msg = _('You have sucessfully registered your Indico profile. ' 'Check <a href="{url}">your profile</a> for further details and settings.') flash(Markup(msg).format(url=url_for('users.user_profile')), 'success') return handler.redirect_success()
def test_make_email_primary(db): signal_called = False def _signal_fn(sender, old, new): nonlocal signal_called signal_called = True assert sender is user assert old == '*****@*****.**' assert new == '*****@*****.**' with signals.users.primary_email_changed.connected_to(_signal_fn): user = User(first_name='Guinea', last_name='Pig', email='*****@*****.**') db.session.add(user) db.session.flush() with pytest.raises(ValueError): user.make_email_primary('*****@*****.**') user.secondary_emails = {'*****@*****.**', '*****@*****.**'} db.session.flush() assert not signal_called user.make_email_primary('*****@*****.**') assert signal_called db.session.expire(user) assert user.email == '*****@*****.**' assert user.secondary_emails == {'*****@*****.**', '*****@*****.**'}
def test_make_email_primary(db): user = User(first_name='Guinea', last_name='Pig', email='*****@*****.**') db.session.add(user) db.session.flush() with pytest.raises(ValueError): user.make_email_primary('*****@*****.**') user.secondary_emails = {'*****@*****.**', '*****@*****.**'} db.session.flush() user.make_email_primary('*****@*****.**') db.session.expire(user) assert user.email == '*****@*****.**' assert user.secondary_emails == {'*****@*****.**', '*****@*****.**'}