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