def test_json_get_set_functions(self): import json from flask import current_app, url_for from invenio.modules.deposit.loader import \ deposition_metadata from invenio.webdeposit_utils import create_workflow from wtforms import TextAreaField from invenio.modules.deposit import forms from invenio.modules.apikeys import build_web_request self.uuid = create_workflow(self.deposition, user_id=1).get_uuid() # Get form from deposition for fun in deposition_metadata[self.deposition]['workflow']: if fun.func_name == 'render': form_type = fun.__form_type__ form = forms[form_type]() # Insert form data form_data = {} for field in form: if isinstance(field, TextAreaField): form_data[field.name] = 'testing webdeposit API' data = {'form_data': json.dumps(form_data), 'uuid': self.uuid} url = url_for('webdeposit_api.json_set', deposition_metadata=self.deposition) url_set = build_web_request(url, {}, uid=1, api_key=self.apikey, timestamp=False) with current_app.test_client() as c: response = c.post(url_set, data=data) assert response._status_code == 200 url = url_for('webdeposit_api.json_get', deposition_metadata=self.deposition) url_get = build_web_request(url, {'uuid': self.uuid}, uid=1, api_key=self.apikey, timestamp=False) response = c.get(url_get) assert response._status_code == 200 for field in form: if isinstance(field, TextAreaField): assert response.json[ field.name] == 'testing webdeposit API'
def test_json_get_set_functions(self): import json from flask import current_app, url_for from invenio_deposit.loader import \ deposition_metadata from invenio.webdeposit_utils import create_workflow from wtforms import TextAreaField from invenio_deposit import forms from invenio.modules.apikeys import build_web_request self.uuid = create_workflow(self.deposition, user_id=1).get_uuid() # Get form from deposition for fun in deposition_metadata[self.deposition]['workflow']: if fun.func_name == 'render': form_type = fun.__form_type__ form = forms[form_type]() # Insert form data form_data = {} for field in form: if isinstance(field, TextAreaField): form_data[field.name] = 'testing webdeposit API' data = {'form_data': json.dumps(form_data), 'uuid': self.uuid} url = url_for('webdeposit_api.json_set', deposition_metadata=self.deposition) url_set = build_web_request(url, {}, uid=1, api_key=self.apikey, timestamp=False) with current_app.test_client() as c: response = c.post(url_set, data=data) assert response._status_code == 200 url = url_for( 'webdeposit_api.json_get', deposition_metadata=self.deposition) url_get = build_web_request(url, {'uuid': self.uuid}, uid=1, api_key=self.apikey, timestamp=False) response = c.get(url_get) assert response._status_code == 200 for field in form: if isinstance(field, TextAreaField): assert response.json[field.name] == 'testing webdeposit API'
def test_create(self): from flask import current_app, url_for from invenio.modules.apikeys import build_web_request url = url_for('webdeposit_api.deposition_create', deposition_types=self.deposition) url_create = build_web_request(url, api_key=self.apikey, timestamp=False) with current_app.test_client() as c: response = c.get(url_create) self.assert200(response) assert "uuid" in response.json