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.patron.get('barcode')) == patron assert not Patron.get_patron_by_barcode('not exists') assert Patron.get_patron_by_user(patron.user) == patron class user: pass assert Patron.get_patron_by_user(user) is None
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_tools(): """Create the header tool menu.""" item = current_menu.submenu('main.tool') rero_register(item, endpoint=None, text='{icon} <span class="{visible}">{menu}'.format( icon='<i class="fa fa-wrench"></i>', visible='visible-md-inline visible-lg-inline', menu=_('Tools')), order=0, id='tools-menu') item = current_menu.submenu('main.tool.ill_request') rero_register( item, endpoint='ill_requests.ill_request_form', visible_when=lambda: Patron.get_patron_by_user(current_user).is_patron, text='{icon} {help}'.format( icon='<i class="fa fa-shopping-basket"></i>', help=_('Interlibrary loan request')), order=10, id='ill-request-menu') item = current_menu.submenu('main.tool.collections') rero_register( item, endpoint='rero_ils.collections', endpoint_arguments_constructor=lambda: dict( viewcode=request.view_args.get( 'viewcode', current_app.config.get('RERO_ILS_SEARCH_GLOBAL_VIEW_CODE'))), visible_when=lambda: current_app.config.get( 'RERO_ILS_SEARCH_GLOBAL_VIEW_CODE') != request.view_args.get( 'viewcode', current_app.config.get('RERO_ILS_SEARCH_GLOBAL_VIEW_CODE')), text='{icon} {help}'.format( icon='<i class="fa fa-graduation-cap"></i>', help=_('Collections')), order=2, id='collections-menu') item = current_menu.submenu('main.tool.help') rero_register(item, endpoint='wiki.page', endpoint_arguments_constructor=lambda: {'url': 'public'}, text='{icon} {help}'.format( icon='<i class="fa fa-info"></i>', help=_('Help')), order=100, id='help-menu')