def test_text_to_jpeg() -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=XLSX_FILE_PATH) is True path_to_file = manager.get_jpeg_preview(file_path=XLSX_FILE_PATH, force=True) assert os.path.exists(path_to_file) is True assert os.path.getsize(path_to_file) > 0
def test_to_pdf_no_extension_extension_forced() -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=IMAGE_FILE_PATH_NO_EXTENSION, file_ext=".xlsx") is True path_to_file = manager.get_pdf_preview( file_path=IMAGE_FILE_PATH_NO_EXTENSION, force=True, file_ext=".xlsx" ) assert os.path.exists(path_to_file) is True
def test_to_pdf_full_export(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=IMAGE_FILE_PATH) is True path_to_file = manager.get_pdf_preview(file_path=IMAGE_FILE_PATH, page=-1, force=True) assert os.path.exists(path_to_file) is True assert os.path.getsize(path_to_file) > 0 assert path_to_file == (os.path.join(CACHE_DIR, PDF_FILE_HASH + ".pdf"))
def test_to_pdf_full_export() -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=IMAGE_FILE_PATH) is True path_to_file = manager.get_pdf_preview(file_path=IMAGE_FILE_PATH, page=-1, force=True) assert os.path.exists(path_to_file) is True assert os.path.getsize(path_to_file) > 0 assert re.match(test_utils.CACHE_FILE_PATH_PATTERN__PDF, path_to_file)
def test_to_pdf_no_page() -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=ODP_FILE_PATH) is True path_to_file = manager.get_pdf_preview(file_path=ODP_FILE_PATH, force=True) assert os.path.exists(path_to_file) is True assert os.path.getsize(path_to_file) > 0 assert re.match(test_utils.CACHE_FILE_PATH_PATTERN__PDF, path_to_file) assert (PdfPreviewBuilderPopplerUtils().get_page_number( cache_path=CACHE_DIR, preview_name="test", file_path=path_to_file) == 5)
def test_to_pdf_no_page(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=IMAGE_FILE_PATH) is True path_to_file = manager.get_pdf_preview(file_path=IMAGE_FILE_PATH, force=True) assert os.path.exists(path_to_file) is True assert os.path.getsize(path_to_file) > 0 assert re.match(test_utils.CACHE_FILE_PATH_PATTERN__PDF, path_to_file) pdf = PdfFileReader(open(path_to_file, "rb")) assert pdf.getNumPages() == 2
def test_to_pdf_one_page(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=IMAGE_FILE_PATH) is True path_0 = manager.get_pdf_preview(file_path=IMAGE_FILE_PATH, page=0, force=True) assert os.path.exists(path_0) is True assert os.path.getsize(path_0) > 0 assert path_0 == os.path.join(CACHE_DIR, PDF_FILE_HASH + "-page0.pdf") path_1 = manager.get_pdf_preview(file_path=IMAGE_FILE_PATH, page=1, force=True) assert os.path.exists(path_1) is True assert os.path.getsize(path_1) > 0 assert path_1 == os.path.join(CACHE_DIR, PDF_FILE_HASH + "-page1.pdf")
def test_to_pdf_one_page(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=IMAGE_FILE_PATH) is True path_0 = manager.get_pdf_preview(file_path=IMAGE_FILE_PATH, page=0, force=True) assert os.path.exists(path_0) is True assert os.path.getsize(path_0) > 0 assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__PDF, path_0) path_1 = manager.get_pdf_preview(file_path=IMAGE_FILE_PATH, page=1, force=True) assert os.path.exists(path_1) is True assert os.path.getsize(path_1) > 0 assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__PDF, path_1)
def test_to_pdf_no_page(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=IMAGE_FILE_PATH) is True path_to_file = manager.get_pdf_preview(file_path=IMAGE_FILE_PATH, force=True) assert os.path.exists(path_to_file) is True assert os.path.getsize(path_to_file) > 0 assert path_to_file == (os.path.join(CACHE_DIR, PDF_FILE_HASH + ".pdf")) try: with WandImage(filename=path_to_file) as pdf: assert len(pdf.sequence) == 2 except PolicyError: pytest.skip("You must update ImageMagic policy file to allow PDF files")
def test_to_pdf_no_page(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=IMAGE_FILE_PATH, ) is True path_to_file = manager.get_pdf_preview(file_path=IMAGE_FILE_PATH, force=True) assert os.path.exists(path_to_file) is True assert os.path.getsize(path_to_file) > 0 assert re.match(test_utils.CACHE_FILE_PATH_PATTERN__PDF, path_to_file) try: with WandImage(filename=path_to_file) as pdf: assert len(pdf.sequence) == 2 except PolicyError: pytest.skip( 'You must update ImageMagic policy file to allow PDF files')
def test_to_pdf_one_page() -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=ODT_FILE_PATH) is True path_0 = manager.get_pdf_preview(file_path=ODT_FILE_PATH, page=0, force=True) assert os.path.exists(path_0) is True assert os.path.getsize(path_0) > 1000 # verify if the size of the pdf refer to a normal content assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__PDF, path_0) assert ( PdfPreviewBuilderPopplerUtils().get_page_number( cache_path=CACHE_DIR, preview_name="test", file_path=path_0 ) == 1 ) path_1 = manager.get_pdf_preview(file_path=ODT_FILE_PATH, page=1, force=True) assert os.path.exists(path_1) is True assert os.path.getsize(path_1) > 1000 # verify if the size of the pdf refer to a normal content assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__PDF, path_1) assert ( PdfPreviewBuilderPopplerUtils().get_page_number( cache_path=CACHE_DIR, preview_name="test", file_path=path_0 ) == 1 )
def test_to_pdf_one_page() -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=ODT_FILE_PATH) is True path_0 = manager.get_pdf_preview(file_path=ODT_FILE_PATH, page=0, force=True) assert os.path.exists(path_0) is True assert os.path.getsize( path_0 ) > 1000 # verify if the size of the pdf refer to a normal content assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__PDF, path_0) pdf = PdfFileReader(open(path_0, "rb")) assert pdf.getNumPages() == 1 path_1 = manager.get_pdf_preview(file_path=ODT_FILE_PATH, page=1, force=True) assert os.path.exists(path_1) is True assert os.path.getsize( path_1 ) > 1000 # verify if the size of the pdf refer to a normal content assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__PDF, path_1) pdf = PdfFileReader(open(path_1, "rb")) assert pdf.getNumPages() == 1
def test_to_pdf(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=IMAGE_FILE_PATH) is True manager.get_pdf_preview(file_path=IMAGE_FILE_PATH, force=True)
def test_to_pdf() -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=IMAGE_FILE_PATH) is False with pytest.raises(UnavailablePreviewType): manager.get_pdf_preview(file_path=IMAGE_FILE_PATH, force=True)
def get_one(self, file_id, revision_id=None): file_id = int(file_id) cache_path = CFG.get_instance().PREVIEW_CACHE_DIR preview_manager = PreviewManager(cache_path, create_folder=True) user = tmpl_context.current_user workspace = tmpl_context.workspace current_user_content = Context(CTX.CURRENT_USER, current_user=user).toDict(user) current_user_content.roles.sort(key=lambda role: role.workspace.name) content_api = ContentApi(user, show_archived=True, show_deleted=True) if revision_id: file = content_api.get_one_from_revision(file_id, self._item_type, workspace, revision_id) else: file = content_api.get_one(file_id, self._item_type, workspace) revision_id = file.revision_id file_path = content_api.get_one_revision_filepath(revision_id) nb_page = 0 enable_pdf_buttons = False # type: bool preview_urls = [] try: nb_page = preview_manager.get_page_nb(file_path=file_path) for page in range(int(nb_page)): url_str = '/previews/{}/pages/{}?revision_id={}' url = url_str.format(file_id, page, revision_id) preview_urls.append(url) enable_pdf_buttons = \ preview_manager.has_pdf_preview(file_path=file_path) except PreviewGeneratorException as e: # INFO - A.P - Silently intercepts preview exception # As preview generation isn't mandatory, just register it logger.debug(self, 'Preview Generator Exception: {}'.format(e.__str__)) except Exception as e: # INFO - D.A - 2017-08-11 - Make Tracim robust to pg exceptions # Preview generator may potentially raise any type of exception # so we prevent user interface crashes by catching all exceptions logger.error( self, 'Preview Generator Generic Exception: {}'.format(e.__str__)) pdf_available = 'true' if enable_pdf_buttons else 'false' # type: str fake_api_breadcrumb = self.get_breadcrumb(file_id) fake_api_content = DictLikeClass(breadcrumb=fake_api_breadcrumb, current_user=current_user_content) fake_api = Context(CTX.FOLDER, current_user=user)\ .toDict(fake_api_content) dictified_file = Context(self._get_one_context, current_user=user).toDict(file, 'file') result = DictLikeClass(result=dictified_file, fake_api=fake_api, nb_page=nb_page, url=preview_urls, pdf_available=pdf_available) return result
def test_has_pdf_preview(file_path: str) -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) with pytest.raises(UnsupportedMimeType): manager.has_pdf_preview(file_path=file_path, file_ext=".bin")
def test_to_pdf_no_extension(): manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview( file_path=IMAGE_FILE_PATH_NO_EXTENSION, ) is False with pytest.raises(UnavailablePreviewType): manager.get_pdf_preview(file_path=IMAGE_FILE_PATH_NO_EXTENSION, )
def test_to_pdf() -> None: manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True) assert manager.has_pdf_preview(file_path=IMAGE_FILE_PATH) is True path_to_file = manager.get_pdf_preview(file_path=IMAGE_FILE_PATH, force=True) assert os.path.exists(path_to_file) is True