Exemple #1
0
def view_letter_upload_as_preview(service_id, file_id):
    try:
        page = int(request.args.get('page'))
    except ValueError:
        abort(400)

    pdf_file, metadata = get_letter_pdf_and_metadata(service_id, file_id)
    invalid_pages = json.loads(metadata.get('invalid_pages', '[]'))

    if (metadata.get('message') == 'content-outside-printable-area'
            and page in invalid_pages):
        return TemplatePreview.from_invalid_pdf_file(pdf_file, page)
    else:
        return TemplatePreview.from_valid_pdf_file(pdf_file, page)
def test_from_valid_pdf_file_makes_request(mocker, page_number, expected_url):
    mocker.patch('app.template_previews.extract_page_from_pdf',
                 return_value=b'pdf page')
    request_mock = mocker.patch('app.template_previews.requests.post',
                                return_value=Mock(content='a',
                                                  status_code='b',
                                                  headers={'c': 'd'}))

    response = TemplatePreview.from_valid_pdf_file(b'pdf file', page_number)

    assert response == ('a', 'b', {'c': 'd'}.items())
    request_mock.assert_called_once_with(
        expected_url,
        data=base64.b64encode(b'pdf page').decode('utf-8'),
        headers={'Authorization': 'Token my-secret-key'},
    )