Beispiel #1
0
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
Beispiel #3
0
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')