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']))
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)
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)
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)
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)
def librarian_sion(app, roles, lib_sion, librarian_sion_data): """Create sion librarian record.""" data = librarian_sion_data yield create_patron(data)
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)
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)
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)
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)
def librarian_fully(app, roles, lib_fully, librarian_fully_data): """Create Fully librarian record.""" data = librarian_fully_data yield create_patron(data)
def librarian2_martigny(app, roles, lib_martigny, librarian2_martigny_data): """Create Martigny librarian record.""" data = librarian2_martigny_data yield create_patron(data)