Beispiel #1
0
def get_patrons_barcodes():
    """Get all barcodes of patrons."""
    ids = Patron.get_all_ids()
    barcodes = []
    for id in ids:
        patron = Patron.get_record_by_id(id)
        barcode = patron.get('barcode')
        if barcode:
            barcodes.append(barcode)
    return barcodes
def test_patrons_post_put_delete(client, lib_martigny,
                                 patron_type_children_martigny,
                                 librarian_martigny_data, json_header, roles):
    """Test record retrieval."""
    item_url = url_for('invenio_records_rest.ptrn_item', pid_value='1')
    post_url = url_for('invenio_records_rest.ptrn_list')
    list_url = url_for('invenio_records_rest.ptrn_list', q='pid:1')
    patron_data = librarian_martigny_data

    pids = len(Patron.get_all_pids())
    uuids = len(Patron.get_all_ids())

    # Create record / POST
    patron_data['pid'] = '1'
    patron_data['email'] = '*****@*****.**'

    res = client.post(post_url,
                      data=json.dumps(patron_data),
                      headers=json_header)

    assert res.status_code == 201
    assert len(Patron.get_all_pids()) == pids + 1
    assert len(Patron.get_all_ids()) == uuids + 1

    # Check that the returned record matches the given data
    data = get_json(res)
    assert data['metadata'] == patron_data

    res = client.get(item_url)
    assert res.status_code == 200
    data = get_json(res)
    assert patron_data == data['metadata']

    # Update record/PUT
    data = patron_data
    data['first_name'] = 'Test Name'
    res = client.put(item_url, data=json.dumps(data), headers=json_header)
    assert res.status_code == 200
    # assert res.headers['ETag'] != '"{}"'.format(ptrnrarie.revision_id)

    # Check that the returned record matches the given data
    data = get_json(res)
    assert data['metadata']['first_name'] == 'Test Name'

    res = client.get(item_url)
    assert res.status_code == 200

    data = get_json(res)
    assert data['metadata']['first_name'] == 'Test Name'

    res = client.get(list_url)
    assert res.status_code == 200

    data = get_json(res)['hits']['hits'][0]
    assert data['metadata']['first_name'] == 'Test Name'

    # Delete record/DELETE
    res = client.delete(item_url)
    assert res.status_code == 204

    res = client.get(item_url)
    assert res.status_code == 410