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'}, )