def test_can_generate_a_pdf_into_a_http_response(self): # Setup response = HttpResponse(content_type='application/pdf') # Run & check generate_pdf('public/journal/article_pdf_coverpage.html', file_object=response) self.assertTrue(isinstance(response.content, bytes)) self.assertTrue(response.tell())
def test_can_use_a_context(self): # Setup response_1 = HttpResponse(content_type='application/pdf') response_2 = HttpResponse(content_type='application/pdf') # Run & check generate_pdf('pdf.html', file_object=response_1) generate_pdf('pdf.html', file_object=response_2, context={'title': 'test'}) self.assertTrue(response_2.tell() > response_1.tell())
def write_datastream_content(self, response, content): # We are going to put a generated coverpage at the beginning of our PDF xml_content = self.fedora_object.xml_content coverpage_context = { 'fedora_article': self.fedora_object, 'erudit_article': EruditArticle(xml_content) if xml_content else None, } coverpage = generate_pdf( 'public/journal/article_pdf_coverpage.html', context=RequestContext(self.request).update(coverpage_context), base_url=self.request.build_absolute_uri('/')) # Merges the cover page and the full article merger = PdfFileMerger() merger.append(coverpage) merger.append(content) merger.write(response) merger.close()
def test_generates_a_pdf_into_a_bytes_stream_by_default(self): # Run & check pdf = generate_pdf('public/journal/article_pdf_coverpage.html') self.assertTrue(isinstance(pdf, io.BytesIO))