示例#1
0
    def test_get_submission_by_uuid(self):
        api_url = mock_ingest_api_url
        mock_submission_uuid = "mock-submission-uuid"
        submissions_url = api_url + "/submissionEnvelopes"
        submission_search_uri = submissions_url + "/search"
        findByUuidRel = "findByUuid"
        findByUuidHref = submission_search_uri + "/findByUuidHref{?uuid}"

        ingestapi = IngestApi(api_url, dict())
        with patch('ingest.api.ingestapi.IngestApi.get_link_from_resource_url'
                   ) as mock_get_url_for_link:

            def mock_get_url_for_link_patch(*args, **kwargs):
                if args[0] == submission_search_uri and args[
                        1] == findByUuidRel:
                    return findByUuidHref

            mock_get_url_for_link.side_effect = mock_get_url_for_link_patch

            with patch(
                    'ingest.api.ingestapi.requests.get') as mock_requests_get:

                def mock_get_side_effect(*args, **kwargs):
                    mock_response = {}
                    mock_response_payload = {}

                    if args[0] == submission_search_uri + "/findByUuidHref" \
                            and 'params' in kwargs \
                            and 'uuid' in kwargs['params'] \
                            and kwargs['params']['uuid'] == mock_submission_uuid:
                        mock_response['status_code'] = 200
                        mock_response_payload = {
                            "uuid": {
                                "uuid": mock_submission_uuid
                            }
                        }
                    else:
                        mock_response['status_code'] = 404

                    mock_response['json'] = lambda _self: mock_response_payload
                    mock_response['text'] = json.dumps(mock_response_payload)

                    def raise_for_status():
                        raise Exception("test failed")

                    mock_response[
                        'raise_for_status'] = lambda _self: raise_for_status()

                    return type("MockResponse", (), mock_response)()

                mock_requests_get.side_effect = mock_get_side_effect

                assert 'uuid' in ingestapi.getSubmissionByUuid(
                    mock_submission_uuid)
示例#2
0
def generate_submission_summary(uuid, ingest_url):
    ingest_api = IngestApi(ingest_url)
    submission = ingest_api.getSubmissionByUuid(uuid)
    summary = SummaryService(ingest_api).summary_for_submission(submission)

    return summary