Example #1
0
    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
Example #4
0
    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