def test_patrons_post_without_email(app, client, lib_martigny, patron_type_children_martigny, patron_martigny_data_tmp, json_header, roles, mailbox): """Test record retrieval.""" patron_data = deepcopy(patron_martigny_data_tmp) patron_data['email'] = '*****@*****.**' patron_data['username'] = '******' del patron_data['pid'] del patron_data['email'] patron_data['patron']['communication_channel'] = 'mail' patron_data = create_user_from_data(patron_data) pids = Patron.count() assert len(mailbox) == 0 # Create record / POST res, _ = postdata(client, 'invenio_records_rest.ptrn_list', patron_data) assert res.status_code == 201 assert Patron.count() == pids + 1 assert len(mailbox) == 0 # Check that the returned record matches the given data data = get_json(res) data['metadata']['patron']['communication_channel'] = 'mail' ds = app.extensions['invenio-accounts'].datastore ds.delete_user(ds.find_user(id=patron_data['user_id']))
def test_patrons_post_without_email(client, lib_martigny, patron_type_children_martigny, patron_martigny_data_tmp, json_header, roles, mailbox): """Test record retrieval.""" patron_data = patron_martigny_data_tmp pids = Patron.count() assert len(mailbox) == 0 # Create record / POST del patron_data['pid'] del patron_data['email'] patron_data['patron']['communication_channel'] = 'mail' patron_data['patron']['additional_communication_email'] = '*****@*****.**' patron_data['username'] = '******' res, _ = postdata(client, 'invenio_records_rest.ptrn_list', patron_data) assert res.status_code == 201 assert Patron.count() == pids + 1 assert len(mailbox) == 0 # Check that the returned record matches the given data data = get_json(res) # remove dynamic property del data['metadata']['user_id'] del data['metadata']['pid'] assert data['metadata'] == patron_data
def test_patrons_post_put_delete(app, client, lib_martigny, patron_type_children_martigny, patron_martigny_data_tmp, json_header, roles, mailbox): """Test record retrieval.""" pid_value = 'ptrn_1' item_url = url_for('invenio_records_rest.ptrn_item', pid_value=pid_value) list_url = url_for('invenio_records_rest.ptrn_list', q='pid:%s' % pid_value) patron_data = deepcopy(patron_martigny_data_tmp) patron_data['email'] = '*****@*****.**' patron_data['username'] = '******' patron_data = create_user_from_data(patron_data) pids = Patron.count() assert len(mailbox) == 0 # Create record / POST patron_data['pid'] = pid_value # patron_data['email'] = '*****@*****.**' # patron_data['username'] = '******' res, _ = postdata(client, 'invenio_records_rest.ptrn_list', patron_data) assert res.status_code == 201 assert Patron.count() == pids + 1 # assert len(mailbox) == 1 # assert re.search(r'localhost/lost-password', mailbox[0].body) # # Check that the returned record matches the given data # data = get_json(res) # # remove dynamic property # del data['metadata']['user_id'] # assert data['metadata'] == patron_data res = client.get(item_url) assert res.status_code == 200 data = get_json(res) # add dynamic property patron_data['user_id'] = data['metadata']['user_id'] data['metadata']['user_id'] # Update record/PUT data = patron_data data['patron']['barcode'] = ['barcode_test'] 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']['patron']['barcode'][0] == 'barcode_test' res = client.get(item_url) assert res.status_code == 200 data = get_json(res) assert data['metadata']['patron']['barcode'][0] == 'barcode_test' res = client.get(list_url) assert res.status_code == 200 data = get_json(res)['hits']['hits'][0] assert data['metadata']['patron']['barcode'][0] == 'barcode_test' # Delete record/DELETE res = client.delete(item_url) assert res.status_code == 204 res = client.get(item_url) assert res.status_code == 410 ds = app.extensions['invenio-accounts'].datastore ds.delete_user(ds.find_user(id=patron_data['user_id']))
def test_patrons_post_put_delete(client, lib_martigny, patron_type_children_martigny, librarian_martigny_data, json_header, roles, mailbox): """Test record retrieval.""" item_url = url_for('invenio_records_rest.ptrn_item', pid_value='1') list_url = url_for('invenio_records_rest.ptrn_list', q='pid:1') patron_data = librarian_martigny_data pids = Patron.count() assert len(mailbox) == 0 # Create record / POST patron_data['pid'] = '1' patron_data['email'] = '*****@*****.**' res, _ = postdata(client, 'invenio_records_rest.ptrn_list', patron_data) assert res.status_code == 201 assert Patron.count() == pids + 1 assert len(mailbox) == 1 assert re.search(r'localhost/lost-password', mailbox[0].body) # 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