def step_impl_we_delete_file(context): url = '/upload/%s' % context.fetched_data['_id'] context.headers.append(('Accept', 'application/json')) headers = if_match(context, context.fetched_data.get('_etag')) response = context.client.delete(get_prefixed_url(context.app, url), headers=headers) assert_200(response) response = context.client.get(get_prefixed_url(context.app, url), headers=headers) assert_404(response)
def patch_current_user(context, data): response = context.client.get(get_prefixed_url(context.app, '/users/%s' % context.user['_id']), headers=context.headers) user = json.loads(response.get_data()) headers = if_match(context, user.get('_etag')) response = context.client.patch(get_prefixed_url(context.app, '/users/%s' % context.user['_id']), data=data, headers=headers) assert_ok(response) return response
def step_impl_when_patch(context): with context.app.mail.record_messages() as outbox: href, etag = get_it(context) headers = if_match(context, etag) context.response = context.client.patch(get_prefixed_url(context.app, href), data=context.text, headers=headers) assert_ok(context.response) context.outbox = outbox
def step_impl_when_put_url(context, url): with context.app.mail.record_messages() as outbox: data = apply_placeholders(context, context.text) href = get_self_href(url) context.response = context.client.put(get_prefixed_url(context.app, href), data=data, headers=context.headers) assert_ok(context.response) context.outbox = outbox
def step_impl_then_get_etag(context, url): if context.app.config['IF_MATCH']: assert_200(context.response) expect_json_contains(context.response, '_etag') etag = get_json_data(context.response).get('_etag') response = context.client.get(get_prefixed_url(context.app, url), headers=context.headers) expect_json_contains(response, {'_etag': etag})
def step_impl_when_restore_version(context, version): data = get_json_data(context.response) href = get_self_href(data, context) headers = if_match(context, data.get('_etag')) text = '{"type": "text", "old_version": %s, "last_version": %s}' % (version, data.get('_version')) context.response = context.client.put(get_prefixed_url(context.app, href), data=text, headers=headers) assert_ok(context.response)
def when_we_create_highglights_package(context): data_text = '{"highlight": "%s", "type": "composite", ' \ '"task": {"user": "******", "desk": "#desks._id#"}}' \ % str(context.highlights['_id']) data_text = apply_placeholders(context, data_text) url = get_prefixed_url(context.app, '/archive') context.response = context.client.post(url, data=data_text, headers=context.headers)
def step_impl_when_patch_url(context, url): url = apply_placeholders(context, url) res = get_res(url, context) href = get_self_href(res, context) headers = if_match(context, res.get('_etag')) data = apply_placeholders(context, context.text) context.response = context.client.patch(get_prefixed_url(context.app, href), data=data, headers=headers)
def step_impl_when_delete_url(context, url): url = apply_placeholders(context, url) res = get_res(url, context) href = get_self_href(res, context) headers = if_match(context, res.get('_etag')) href = get_prefixed_url(context.app, href) context.response = context.client.delete(href, headers=headers)
def steo_impl_we_get_latest(context): data = get_json_data(context.response) href = get_self_href(data, context) headers = if_match(context, data.get('_etag')) href = get_prefixed_url(context.app, href) context.response = context.client.get(href, headers=headers) assert_200(context.response)
def we_can_fetch_a_file(context, url, mimetype): headers = [('Accept', 'application/json')] headers = unique_headers(headers, context.headers) response = context.client.get(get_prefixed_url(context.app, url), headers=headers) assert_200(response) assert len(response.get_data()), response assert response.mimetype == mimetype, response.mimetype
def start_reset_password_for_user(context): data = {'token': context.token, 'password': '******'} headers = [('Content-Type', 'multipart/form-data')] headers = unique_headers(headers, context.headers) context.response = context.client.post(get_prefixed_url(context.app, '/reset_user_password'), data=data, headers=headers) print(context.response.get_data())
def step_impl_when_put_url(context, url): data = apply_placeholders(context, context.text) href = get_self_href(url) context.response = context.client.put(get_prefixed_url(context.app, href), data=data, headers=context.headers) assert_ok(context.response)
def step_create_a_user(context): data = apply_placeholders(context, context.text) with context.app.mail.record_messages() as outbox: context.response = context.client.post(get_prefixed_url(context.app, '/users'), data=data, headers=context.headers) expect_status_in(context.response, (200, 201)) assert len(outbox) == 1 context.email = outbox[0]
def step_impl_when_patch(context): href, etag = get_it(context) headers = if_match(context, etag) context.response = context.client.patch(get_prefixed_url( context.app, href), data=context.text, headers=headers) assert_ok(context.response)
def we_get_embedded_items(context): response_data = json.loads(context.response.get_data()) href = get_self_href(response_data, context) url = href + '/?embedded={"items": 1}' context.response = context.client.get(get_prefixed_url(context.app, url), headers=context.headers) assert_200(context.response) context.response_data = json.loads(context.response.get_data()) assert len(context.response_data['items']['view_items']) == 2
def when_we_delete_it(context): with context.app.mail.record_messages() as outbox: res = get_json_data(context.response) href = get_self_href(res, context) headers = if_match(context, res.get('_etag')) href = get_prefixed_url(context.app, href) context.response = context.client.delete(href, headers=headers) context.email = outbox
def start_reset_password_for_user(context): data = {'token': context.token, 'password': '******'} headers = [('Content-Type', 'multipart/form-data')] headers = unique_headers(headers, context.headers) context.response = context.client.post(get_prefixed_url( context.app, '/reset_user_password'), data=data, headers=headers)
def step_impl_then_get_archive_ingest_result(context): assert_200(context.response) expect_json_contains(context.response, 'task_id') item = json.loads(context.response.get_data()) url = '/archive_ingest/%s' % (item['task_id']) context.response = context.client.get(get_prefixed_url(context.app, url), headers=context.headers) assert_200(context.response) test_json(context)
def step_role_extends(context, extending_name, extended_name): with context.app.test_request_context(context.app.config['URL_PREFIX']): extended = get_resource_service('roles').find_one(name=extended_name, req=None) extending = get_resource_service('roles').find_one(name=extending_name, req=None) headers = if_match(context, extending.get('_etag')) data = json.dumps({'extends': str(extended['_id'])}) context.response = context.client.patch(get_prefixed_url(context.app, '/roles/%s' % extending['_id']), data=data, headers=headers)
def step_impl_when_post_url(context, url): data = apply_placeholders(context, context.text) if url in ('/users', 'users'): user = json.loads(data) user.setdefault('needs_activation', False) data = json.dumps(user) context.response = context.client.post(get_prefixed_url(context.app, url), data=data, headers=context.headers) store_placeholder(context, url)
def step_impl_when_upload_from_url(context): data = {'URL': external_url} headers = [('Content-Type', 'multipart/form-data')] headers = unique_headers(headers, context.headers) context.response = context.client.post(get_prefixed_url( context.app, '/upload'), data=data, headers=headers)
def step_impl_when_delete_url(context, url): with context.app.mail.record_messages() as outbox: url = apply_placeholders(context, url) res = get_res(url, context) href = get_self_href(res, context) headers = if_match(context, res.get('_etag')) href = get_prefixed_url(context.app, href) context.response = context.client.delete(href, headers=headers) context.outbox = outbox
def step_impl_when_upload_from_url_with_crop(context): data = {'URL': external_url, 'CropTop': '0', 'CropLeft': '0', 'CropBottom': '333', 'CropRight': '333'} headers = [('Content-Type', 'multipart/form-data')] headers = unique_headers(headers, context.headers) context.response = context.client.post(get_prefixed_url(context.app, '/upload'), data=data, headers=headers)
def when_we_get_url(context, url): headers = [] if context.text: for line in context.text.split('\n'): key, val = line.split(': ') headers.append((key, val)) headers = unique_headers(headers, context.headers) url = apply_placeholders(context, url) context.response = context.client.get(get_prefixed_url(context.app, url), headers=headers)
def we_post_to_reset_password_it_fails(context): data = {'email': '*****@*****.**'} headers = [('Content-Type', 'multipart/form-data')] headers = unique_headers(headers, context.headers) with context.app.mail.record_messages() as outbox: context.response = context.client.post(get_prefixed_url(context.app, '/reset_user_password'), data=data, headers=headers) expect_status_in(context.response, (200, 201)) assert len(outbox) == 0
def we_reset_password_for_user(context): start_reset_password_for_user(context) expect_status_in(context.response, (200, 201)) auth_data = {'username': '******', 'password': '******'} headers = [('Content-Type', 'multipart/form-data')] headers = unique_headers(headers, context.headers) context.response = context.client.post(get_prefixed_url(context.app, '/auth'), data=auth_data, headers=headers) expect_status_in(context.response, (200, 201))
def step_impl_when_auth(context): data = context.text context.response = context.client.post(get_prefixed_url(context.app, '/auth'), data=data, headers=context.headers) if context.response.status_code == 200 or context.response.status_code == 201: item = json.loads(context.response.get_data()) if item.get('_id'): set_placeholder(context, 'AUTH_ID', item['_id']) context.headers.append(('Authorization', b'basic ' + b64encode(item['token'].encode('ascii') + b':'))) context.user = item['user']
def upload_file(context, dest, filename, crop_data=None): with open(get_fixture_path(filename), 'rb') as f: data = {'media': f} if crop_data: data.update(crop_data) headers = [('Content-Type', 'multipart/form-data')] headers = unique_headers(headers, context.headers) context.response = context.client.post(get_prefixed_url(context.app, dest), data=data, headers=headers) assert_ok(context.response)
def step_impl_when_post_url(context, url): data = apply_placeholders(context, context.text) context.response = context.client.post(get_prefixed_url(context.app, url), data=data, headers=context.headers) if context.response.status_code in (200, 201): item = json.loads(context.response.get_data()) if item['_status'] == 'OK' and item.get('_id'): parsed_url = urlparse(url) name = basename(parsed_url.path) set_placeholder(context, '%s_ID' % name.upper(), item['_id'])
def step_impl_when_post_url_with_success(context, url): data = apply_placeholders(context, context.text) context.response = context.client.post(get_prefixed_url(context.app, url), data=data, headers=context.headers) assert_ok(context.response) item = json.loads(context.response.get_data()) if item.get('_id'): parsed_url = urlparse(url) name = basename(parsed_url.path) set_placeholder(context, '%s_ID' % name.upper(), item['_id'])
def then_we_get_activity(context): url = apply_placeholders(context, '/activity?where={"name": "notify"}') context.response = context.client.get(get_prefixed_url(context.app, url), headers=context.headers) if context.response.status_code == 200: expect_json_length(context.response, 1, path='_items') item = json.loads(context.response.get_data()) item = item['_items'][0] if item.get('_id'): setattr(context, 'activity', item) set_placeholder(context, 'USERS_ID', item['user'])
def then_we_get_activity(context): url = apply_placeholders(context, '/activity?where={"name": "notify"}') context.response = context.client.get(get_prefixed_url(context.app, url), headers=context.headers) if context.response.status_code == 200: expect_json_length(context.response, 1, path='_items') item = json.loads(context.response.get_data()) item = item['_items'][0] if item.get('_id'): set_placeholder(context, 'ACTIVITY_ID', item['_id']) set_placeholder(context, 'USERS_ID', item['user'])
def step_impl_when_post_url_with_success(context, url): with context.app.mail.record_messages() as outbox: data = apply_placeholders(context, context.text) context.response = context.client.post(get_prefixed_url(context.app, url), data=data, headers=context.headers) assert_ok(context.response) item = json.loads(context.response.get_data()) if item.get('_id'): setattr(context, get_resource_name(url), item) context.outbox = outbox
def when_we_find_for_resource_the_id_as_name_by_search_criteria(context, resource, name, search_criteria): url = '/' + resource + '?where=' + search_criteria context.response = context.client.get(get_prefixed_url(context.app, url), headers=context.headers) print('context.response.status_code: ', context.response.status_code) if context.response.status_code == 200: expect_json_length(context.response, 1, path='_items') item = json.loads(context.response.get_data()) item = item['_items'][0] if item.get('_id'): set_placeholder(context, name, item['_id'])