Exemple #1
0
def test_has_jpeg_preview(file_path):
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    with pytest.raises(UnsupportedMimeType):
        manager.has_jpeg_preview(
            file_path=file_path,
            file_ext='.bin'
        )
Exemple #2
0
def test_odp_to_jpeg_no_extension() -> None:
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert (manager.has_jpeg_preview(file_path=ODP_FILE_PATH_NO_EXTENSION,
                                     file_ext=ODP_FILE_EXT) is True)
    path0 = manager.get_jpeg_preview(
        file_path=ODP_FILE_PATH_NO_EXTENSION,
        file_ext=ODP_FILE_EXT,
        height=512,
        width=256,
        page=0,
        force=True,
    )
    assert os.path.exists(path0)
    assert os.path.getsize(path0) > 0
    re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__JPEG, path0)

    with Image.open(path0) as jpeg:
        assert jpeg.height == 192
        assert jpeg.width == 256

    path1 = manager.get_jpeg_preview(
        file_path=ODP_FILE_PATH_NO_EXTENSION,
        file_ext=ODP_FILE_EXT,
        height=512,
        width=256,
        page=1,
        force=True,
    )
    assert os.path.exists(path1)
    assert os.path.getsize(path1) > 0
    assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__JPEG, path1)

    with Image.open(path1) as jpeg:
        assert jpeg.height == 192
        assert jpeg.width == 256
Exemple #3
0
def test_to_jpeg_no_extension() -> None:
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    image_file_path = HTML_FILE_PATH_NO_EXTENSION
    assert manager.has_jpeg_preview(file_path=image_file_path) is True
    path_to_file = manager.get_jpeg_preview(file_path=image_file_path,
                                            force=True)
    assert os.path.exists(path_to_file) is True
def test_to_pdf():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    image_file_path = IMAGE_FILE_PATH
    assert manager.has_jpeg_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
Exemple #5
0
def test_to_jpeg() -> None:
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH) is True
    path0 = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH,
                                     height=512,
                                     width=256,
                                     page=0,
                                     force=True)
    assert os.path.exists(path0) is True
    assert os.path.getsize(path0) > 0
    assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__JPEG, path0)

    with Image.open(path0) as jpeg:
        assert jpeg.height == 357
        assert jpeg.width == 256

    path1 = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH,
                                     height=512,
                                     width=256,
                                     page=1,
                                     force=True)
    assert os.path.exists(path1) is True
    assert os.path.getsize(path1) > 0
    assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__JPEG, path1)

    with Image.open(path1) as jpeg:
        assert jpeg.height == 357
        assert jpeg.width == 256
Exemple #6
0
def test_text_to_jpeg() -> None:
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    image_file_path = HTML_FILE_PATH
    assert manager.has_jpeg_preview(file_path=image_file_path) is True
    path_to_file = manager.get_jpeg_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
Exemple #7
0
def test_algorithm4():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH__A4) is True
    path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH__A4,
                                            force=True)
    with Image.open(path_to_file) as jpeg:
        assert jpeg.height == 256
        assert jpeg.width in range(180, 182)
def test_to_jpeg_no_extension_extension_forced():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    image_file_path = IMAGE_FILE_PATH_NO_EXTENSION
    assert manager.has_jpeg_preview(file_path=image_file_path,
                                    file_ext=".txt") is True
    path_to_file = manager.get_jpeg_preview(file_path=image_file_path,
                                            force=True,
                                            file_ext=".txt")
    assert os.path.exists(path_to_file) is True
def test_to_jpeg__default_size() -> None:
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH) is True
    path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH)
    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__JPEG, path_to_file)

    with Image.open(path_to_file) as jpeg:
        assert jpeg.height in range(229, 231)
        assert jpeg.width == 256
Exemple #10
0
def test_to_jpeg_no_size_no_page():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH) is True
    path_to_file = manager.get_jpeg_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__JPEG, path_to_file)

    with Image.open(path_to_file) as jpeg:
        assert jpeg.height == 256
        assert jpeg.width in range(180, 182)
def test_to_jpeg__default_size():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH, ) is True
    path_to_file = manager.get_jpeg_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 == (
        '/tmp/preview-generator-tests/cache/{hash}-256x256.jpeg'.format(
            hash=FILE_HASH))
    with Image.open(path_to_file) as jpeg:
        assert jpeg.height in range(90, 92)
        assert jpeg.width == 256
Exemple #12
0
def test_to_jpeg_no_page() -> None:
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=ODP_FILE_PATH) is True
    path_to_file = manager.get_jpeg_preview(file_path=ODP_FILE_PATH,
                                            height=512,
                                            width=512,
                                            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__JPEG, path_to_file)

    with Image.open(path_to_file) as jpeg:
        assert jpeg.height == 384
        assert jpeg.width == 512
Exemple #13
0
def test_to_jpeg():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH, ) is True
    path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH,
                                            height=512,
                                            width=321,
                                            force=True)
    assert os.path.exists(path_to_file) == True
    assert os.path.getsize(path_to_file) > 0
    assert re.match(test_utils.CACHE_FILE_PATH_PATTERN__JPEG, path_to_file)

    with Image.open(path_to_file) as jpeg:
        assert jpeg.height in range(453, 455)
        assert jpeg.width == 321
Exemple #14
0
def test_to_jpeg():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH) is True
    path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH,
                                            height=256,
                                            width=512)

    assert os.path.exists(path_to_file) is True
    assert os.path.getsize(path_to_file) > 0
    assert path_to_file == (
        "/tmp/preview-generator-tests/cache/{hash}-512x256.jpeg".format(
            hash=FILE_HASH))
    with Image.open(path_to_file) as jpeg:
        assert jpeg.height in range(182, 184)
        assert jpeg.width == 512
def test_to_jpeg_no_size():
    try:
        manager = PreviewManager(cache_folder_path=CACHE_DIR,
                                 create_folder=True)
        assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH) is True
        path_to_file = manager.get_jpeg_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
        with Image.open(path_to_file) as jpeg:
            assert jpeg.height == 256
            assert jpeg.width == 256
    except PolicyError:
        pytest.skip(
            "You must update ImageMagic policy file to allow EPS convert")
Exemple #16
0
def test_to_jpeg_no_extension() -> None:
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH_NO_EXTENSION,
                                    file_ext=".ARW") is True
    path_to_file = manager.get_jpeg_preview(
        file_path=IMAGE_FILE_PATH_NO_EXTENSION,
        height=256,
        width=512,
        force=True,
        file_ext=".ARW")
    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__JPEG, path_to_file)

    with Image.open(path_to_file) as jpeg:
        assert jpeg.height == 256
        assert jpeg.width == 171
Exemple #17
0
def test_to_jpeg__encrypted_pdf() -> None:
    with pytest.raises(PyPDF2.utils.PdfReadError):  #  ensure file is encrpyted
        pdf = PdfFileReader(PDF_FILE_PATH__ENCRYPTED)
        pdf.getPage(0)

    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=PDF_FILE_PATH) is True
    path_to_file = manager.get_jpeg_preview(file_path=PDF_FILE_PATH__ENCRYPTED,
                                            height=512,
                                            width=321,
                                            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__JPEG, path_to_file)

    with Image.open(path_to_file) as jpeg:
        assert jpeg.height in range(453, 455)
        assert jpeg.width == 321
Exemple #18
0
def test_png_to_jpeg_with_background_white() -> None:
    image_file_path = os.path.join(CURRENT_DIR, "the_png.png")
    to_size = ImgDims(width=512, height=256)
    with Image(filename=image_file_path) as input_img:
        input_size = ImgDims(width=input_img.width, height=input_img.height)
    expected_size = compute_resize_dims(input_size, to_size)

    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=image_file_path) is True

    path_to_file = manager.get_jpeg_preview(
        file_path=image_file_path, width=to_size.width, height=to_size.height, 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__JPEG, path_to_file)

    with Image(filename=path_to_file) as output_img:
        assert output_img.width == expected_size.width
        assert output_img.height == expected_size.height
        assert nearest_colour_white(output_img[5][5])