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_invalid_pdf_file_makes_request(mocker): 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_invalid_pdf_file(b'pdf file', '1') assert response == ('a', 'b', {'c': 'd'}.items()) request_mock.assert_called_once_with( 'http://localhost:9999/precompiled/overlay.png?page_number=1', data=b'pdf page', headers={'Authorization': 'Token my-secret-key'}, )