def test_patron_secure_api_delete(app, client, librarian_martigny,
                                  librarian_sion, roles, lib_martigny,
                                  patron_type_children_martigny,
                                  patron_martigny_data):
    """Test patron secure api delete."""
    data = deepcopy(patron_martigny_data)
    data['username'] = '******'
    data['email'] = '*****@*****.**'
    patron = create_patron(data)
    login_user_via_session(client, librarian_martigny.user)
    record_url = url_for('invenio_records_rest.ptrn_item',
                         pid_value=patron.pid)

    res = client.delete(record_url)
    assert res.status_code == 204

    # try to delete itself
    record_url = url_for('invenio_records_rest.ptrn_item',
                         pid_value=librarian_martigny.pid)
    res = client.delete(record_url)
    assert res.status_code == 403

    # Sion
    login_user_via_session(client, librarian_sion.user)

    res = client.delete(record_url)
    assert res.status_code == 403

    # clean up
    ds = app.extensions['invenio-accounts'].datastore
    ds.delete_user(ds.find_user(id=patron['user_id']))
Exemple #2
0
def selfcheck_patron_martigny(app, roles, lib_martigny,
                              patron_type_children_martigny,
                              selfcheck_patron_martigny_data):
    """Create Martigny patron without sending reset password instruction."""
    # create patron account
    data = selfcheck_patron_martigny_data
    yield create_patron(data)
Exemple #3
0
def patron_sion_without_email1(app, roles, lib_sion, patron_type_grown_sion,
                               patron_sion_data):
    """Create Sion patron without sending reset password instruction."""
    data = deepcopy(patron_sion_data)
    del data['email']
    data['pid'] = 'ptrn10wthoutemail'
    data['username'] = '******'
    data['patron']['communication_channel'] = 'mail'
    yield create_patron(data)
Exemple #4
0
def patron_sion_multiple(app, roles, lib_sion, patron_type_grown_sion,
                         patron2_martigny_data):
    """Create a Sion patron with the same user as Martigny patron."""
    data = deepcopy(patron2_martigny_data)
    data['pid'] = 'ptrn13'
    data['patron']['barcode'] = ['42421313123']
    data['roles'] = ['patron', 'librarian']
    pid = lib_sion.pid
    data['libraries'] = [{'$ref': f'https://ils.rero.ch/api/libraries/{pid}'}]
    pid = patron_type_grown_sion.pid
    data['patron']['type'] = {
        '$ref': f'https://ils.rero.ch/api/patron_types/{pid}'
    }
    yield create_patron(data)
Exemple #5
0
def system_librarian2_martigny(app, roles, lib_martigny,
                               system_librarian2_martigny_data):
    """Create Martigny system librarian record."""
    data = system_librarian2_martigny_data
    yield create_patron(data)
Exemple #6
0
def librarian_sion(app, roles, lib_sion, librarian_sion_data):
    """Create sion librarian record."""
    data = librarian_sion_data
    yield create_patron(data)
Exemple #7
0
def patron_sion(app, roles, lib_sion, patron_type_grown_sion,
                patron_sion_data):
    """Create Sion patron record."""
    data = patron_sion_data
    yield create_patron(data)
Exemple #8
0
def system_librarian_sion(app, roles, lib_sion, system_librarian_sion_data):
    """Create Sion system librarian record."""
    data = system_librarian_sion_data
    yield create_patron(data)
Exemple #9
0
def patron4_martigny(app, roles, lib_martigny, patron_type_adults_martigny,
                     patron4_martigny_data):
    """Create Martigny patron record."""
    data = patron4_martigny_data
    yield create_patron(data)
Exemple #10
0
def patron3_martigny_blocked(app, roles, lib_martigny, lib_saxon,
                             patron_type_adults_martigny,
                             patron3_martigny_blocked_data):
    """Create Martigny patron record."""
    data = patron3_martigny_blocked_data
    yield create_patron(data)
Exemple #11
0
def librarian_fully(app, roles, lib_fully, librarian_fully_data):
    """Create Fully librarian record."""
    data = librarian_fully_data
    yield create_patron(data)
Exemple #12
0
def librarian2_martigny(app, roles, lib_martigny, librarian2_martigny_data):
    """Create Martigny librarian record."""
    data = librarian2_martigny_data
    yield create_patron(data)