def test_documents_processor_empty():
    urls = []
    docs = documents_processor(urls, 'JobID', client_id)
    assert docs == {
        'client_id': client_id,
        'type': 'docs',
        'data': [],
        'job_id': 'JobID',
        'version': version
    }
def test_documents_processor_basic():
    urls = []
    docs = documents_processor(urls, 'JobID', client_id)
    assert docs == {
        'client_id': client_id,
        "type": "docs",
        'data': [],
        'job_id': 'JobID',
        'version': version
    }
def test_documents_processor(mock_req):
    urls = [base_url, base_url2]
    mock_req.get(client_add_api_key(base_url),
                 status_code=200,
                 text='{"documents": '
                 '[{"documentId": '
                 '"CMS-2005-0001-0001",'
                 ' "attachmentCount": 4},\
                                       {"documentId": '
                 '"CMS-2005-0001-0002",'
                 ' "attachmentCount": 999}]}')
    mock_req.get(client_add_api_key(base_url2),
                 status_code=200,
                 text='{"documents": '
                 '[{"documentId": '
                 '"CMS-2005-0001-0003", '
                 '"attachmentCount": 88},\
                                         {"documentId": '
                 '"CMS-2005-0001-0004", '
                 '"attachmentCount": 666}]}')
    docs = documents_processor(urls, 'Job ID', client_id)
    assert docs == ({
        'job_id':
        'Job ID',
        'type':
        'docs',
        'data': [[{
            'id': 'CMS-2005-0001-0001',
            'count': 5
        }], [{
            'id': 'CMS-2005-0001-0002',
            'count': 1000
        }],
                 [{
                     'id': 'CMS-2005-0001-0003',
                     'count': 89
                 }, {
                     'id': 'CMS-2005-0001-0004',
                     'count': 667
                 }]],
        'version':
        version,
        'client_id':
        client_id
    })
Exemple #4
0
def return_docs(json_result, client_id):
    """
    Handles the documents processing necessary for a job
    Calls the /return_docs endpoint of the server to return data for the job it completed
    :param json_result: the json received from the /get_work endpoint
    :param client_id: the id of the client that is processing the documents job
    :return: result from calling /return_docs
    """

    job_id, urls = get_json_info(json_result)
    json_info = docs.documents_processor(urls, job_id, client_id)
    path = tempfile.TemporaryDirectory()
    add_client_log_files(path.name, ".")
    shutil.make_archive("result", "zip", path.name)
    fileobj = open('result.zip', 'rb')
    r = requests.post(serverurl + "/return_docs",
                      files={'file': fileobj},
                      data={'json': json.dumps(json_info)})
    r.raise_for_status()
    logger.warning('Returned Docs')
    logger.handlers[0].doRollover()
    return r