def test_get_patron(patron_martigny_no_email): """Test patron retrieval.""" patron = patron_martigny_no_email assert Patron.get_patron_by_email(patron.get('email')) == patron assert not Patron.get_patron_by_email('not exists') assert Patron.get_patron_by_barcode(patron.get('barcode')) == patron assert not Patron.get_patron_by_barcode('not exists') class user: email = patron.get('email') assert Patron.get_patron_by_user(user) == patron
def test_get_patron(patron_martigny): """Test patron retrieval.""" patron = patron_martigny assert Patron.get_patron_by_email(patron.dumps().get('email')) == patron assert not Patron.get_patron_by_email('not exists') assert Patron.get_patron_by_barcode( patron.patron.get('barcode')[0]) == patron assert not Patron.get_patron_by_barcode('not exists') assert Patron.get_patrons_by_user(patron.user)[0] == patron class user: pass assert not Patron.get_patrons_by_user(user)
def test_patron(reindex, get_borrowed_documents_pids, get_uuid_pid_by_email, record_indexer, url_for1, url_for2, send_email, confirm_user, app, db, minimal_patron_record, minimal_document_record, minimal_item_record): """Test patron""" # Convenient references security = LocalProxy(lambda: app.extensions['security']) datastore = LocalProxy(lambda: security.datastore) # hack the return value get_uuid_pid_by_email.return_value = None, None next, pid = save_patron(minimal_patron_record, Patron.provider.pid_type, Patron.fetcher, Patron.minter, record_indexer, Patron, None) email = minimal_patron_record.get('email') # Verify that user exists in app's datastore user = datastore.get_user(email) assert user # hack the return value get_uuid_pid_by_email.return_value = pid.object_uuid, pid.id patron = Patron.get_patron_by_email(email) assert patron.get('email') == email patron = Patron.get_patron_by_user(user) assert patron.get('email') == email doc = DocumentsWithItems.create(minimal_document_record, dbcommit=True) # hack the return value get_borrowed_documents_pids.return_value = [doc.pid] docs = patron.get_borrowed_documents() assert docs[0] == doc
def init_menu_profile(): """Create the profile header menu.""" item = current_menu.submenu('main.profile') account = _('My Account') user_initials = session.get('user_initials') if session.get('user_id'): if user_initials: account = user_initials else: patron = Patron.get_patron_by_email(current_user.email) if patron: account = patron.initial session['user_initials'] = account else: if user_initials: del session['user_initials'] item.register( endpoint=None, text='{icon} <span class="{visible}">{account}</span>'.format( icon='<i class="fa fa-user"></i>', visible='visible-md-inline visible-lg-inline', account=account), order=1) item = current_menu.submenu('main.profile.login') item.register( endpoint='security.login', endpoint_arguments_constructor=lambda: dict(next=request.full_path), visible_when=lambda: not current_user.is_authenticated, text='{icon} {login}'.format(icon='<i class="fa fa-sign-in"></i>', login=_('Login')), order=1) item = current_menu.submenu('main.profile.logout') item.register( endpoint='security.logout', endpoint_arguments_constructor=lambda: dict(next='/{viewcode}'.format( viewcode=request.view_args.get( 'viewcode', current_app.config.get('RERO_ILS_SEARCH_GLOBAL_VIEW_CODE')))), visible_when=lambda: current_user.is_authenticated, text='{icon} {logout}'.format(icon='<i class="fa fa-sign-out"></i>', logout=_('Logout')), order=1) item = current_menu.submenu('main.profile.signup') item.register(endpoint='security.register', visible_when=lambda: not current_user.is_authenticated, text='{icon} {signup}'.format( icon='<i class="fa fa-user-plus"></i>', signup=_('Sign Up')), order=2)
def init_menu(): """Create the header menus.""" item = current_menu.submenu('main.menu') item.register( endpoint=None, text='{icon} <span class="{visible}">{menu}'.format( icon='<i class="fa fa-bars"></i>', visible='visible-md-inline visible-lg-inline', menu=_('Menu') ), order=0 ) order = 10 def return_language(lang): return dict(lang_code=lang) def hide_language(lang): return current_i18n.language != lang for language_item in current_i18n.get_locales(): item = current_menu.submenu( 'main.menu.lang_{language}'.format( language=language_item.language)) ui_language = 'ui_language_{lang}'.format(lang=language_item.language) item.register( endpoint='invenio_i18n.set_lang', endpoint_arguments_constructor=partial( return_language, language_item.language), text='{icon} {language}'.format( icon='<i class="fa fa-language"></i>', language=_(ui_language) ), visible_when=partial(hide_language, language_item.language), order=order ) order += 1 item = current_menu.submenu('main.menu.help') item.register( endpoint='rero_ils.help', text='{icon} {help}'.format( icon='<i class="fa fa-info"></i>', help=_('Help') ), order=100 ) item = current_menu.submenu('main.profile') account = _('My Account') if current_user.is_authenticated: patron = Patron.get_patron_by_email(current_user.email) if patron: account = patron.initial item.register( endpoint=None, text='{icon} <span class="{visible}">{account}</span>'.format( icon='<i class="fa fa-user"></i>', visible='visible-md-inline visible-lg-inline', account=account ), order=1 ) item = current_menu.submenu('main.profile.login') item.register( endpoint='security.login', endpoint_arguments_constructor=lambda: dict( next=request.full_path ), visible_when=lambda: not current_user.is_authenticated, text='{icon} {login}'.format( icon='<i class="fa fa-sign-in"></i>', login=_('Login') ), order=1 ) item = current_menu.submenu('main.profile.logout') item.register( endpoint='security.logout', endpoint_arguments_constructor=lambda: dict( next='/{viewcode}'.format(viewcode=request.view_args.get( 'viewcode', current_app.config.get( 'RERO_ILS_SEARCH_GLOBAL_VIEW_CODE')) ) ), visible_when=lambda: current_user.is_authenticated, text='{icon} {logout}'.format( icon='<i class="fa fa-sign-out"></i>', logout=_('Logout') ), order=1 ) item = current_menu.submenu('main.profile.signup') item.register( endpoint='security.register', visible_when=lambda: not current_user.is_authenticated, text='{icon} {signup}'.format( icon='<i class="fa fa-user-plus"></i>', signup=_('Sign Up') ), order=2 )
def test_get_patron_blocked_field_absent(patron2_martigny): """Test patron blocked field retrieval.""" patron = Patron.get_patron_by_email(patron2_martigny.dumps().get('email')) assert 'blocked' not in patron
def test_get_patron_blocked_field(patron_martigny): """Test patron blocked field retrieval.""" patron = Patron.get_patron_by_email(patron_martigny.dumps().get('email')) assert patron.patron.get('blocked') is False
def test_get_patron_blocked_field(patron_martigny_no_email): """Test patron blocked field retrieval.""" patron = Patron.get_patron_by_email(patron_martigny_no_email.get('email')) assert 'blocked' in patron assert patron.get('blocked', {}) is False