Пример #1
0
def test_resizetarget_init(filestorage):
    original_image_relative_url = 'path/to/my/file.png'
    target = resizing.ResizeTarget(
        filestorage,
        original_image_relative_url,
        dimensions='100x50',
        format='jpeg',
        quality=80,
        fill=False,
        bgcolor=None,
        upscale=True,
        progressive=True,
        use_placeholder=False,
        cache_store=cache.NoopCache(),
    )
    assert target.name_hashing_method == 'sha1'
    assert target.target_directory == 'resized-images'

    assert (target._get_generate_unique_key_args() == [
        original_image_relative_url, 'JPEG', 80, 100, 50, '', 'no-fill',
        'upscale', ''
    ])

    assert (target.unique_key ==
            'resized-images/e1307a6b8f166778588914d5130bd92bcd7f20ca.jpg')
Пример #2
0
def test_resizetarget_init(filestorage):
    original_image_relative_url = "path/to/my/file.png"
    target = resizing.ResizeTarget(
        filestorage,
        original_image_relative_url,
        dimensions="100x50",
        format="jpeg",
        quality=80,
        fill=False,
        bgcolor=None,
        upscale=True,
        progressive=True,
        use_placeholder=False,
        cache_store=cache.NoopCache(),
    )
    assert target.name_hashing_method == "sha1"
    assert target.target_directory == "resized-images"

    assert target._get_generate_unique_key_args() == [
        original_image_relative_url,
        "JPEG",
        80,
        100,
        50,
        "",
        "no-fill",
        "upscale",
        "",
    ]

    assert (target.unique_key ==
            "resized-images/e1/30/7a6b8f166778588914d5130bd92bcd7f20ca.jpg")
Пример #3
0
def test_svg_resize_cairosvgimporterror(tmpdir, resizetarget_opts):
    svg_path = tmpdir.join('test.svg')
    svg_path.write('content')

    resizetarget_opts.update(source_image_relative_url='test.svg')
    resize_target = resizing.ResizeTarget(**resizetarget_opts)

    with pytest.raises(exc.CairoSVGImportError):
        resize_target.generate()
Пример #4
0
def test_fill_dimensions(tmpdir, image1_data, resizetarget_opts):
    file1 = tmpdir.join('file1.png')
    file1.write_binary(image1_data)

    resizetarget_opts.update(
        format='png',
        source_image_relative_url='file1.png',
        dimensions='300x400',
        fill=True,
    )
    resize_target = resizing.ResizeTarget(**resizetarget_opts)
    img_data = resize_target.generate()
    generated_img = Image.open(io.BytesIO(img_data))
    assert generated_img.width == 300
    assert generated_img.height == 400
    assert generated_img.getpixel((0, 0))[3] == 0  # Transparent

    resizetarget_opts.update(dimensions='700x600')
    resize_target = resizing.ResizeTarget(**resizetarget_opts)
    img_data = resize_target.generate()
    generated_img = Image.open(io.BytesIO(img_data))
    assert generated_img.width == 700
    assert generated_img.height == 600
    assert generated_img.getpixel((0, 0))[3] == 0  # Transparent
Пример #5
0
def test_resizetarget_generate(resizetarget_opts, image1_data, image1_name,
                               image1_key):
    resize_target = resizing.ResizeTarget(**resizetarget_opts)
    assert resize_target.name_hashing_method == 'sha1'

    with pytest.raises(exc.CacheMiss):
        resize_target.get_cached_path()

    with pytest.raises(exc.ImageNotFoundError):
        assert resize_target.get_path()

    # Save original file
    resize_target.image_store.save(image1_name, image1_data)

    # Generate thumb
    resize_target.generate()

    assert resize_target.get_path() == image1_key
Пример #6
0
def test_redis_cache(redis_cache, resizetarget_opts, image1_data, image1_name):

    resizetarget_opts.update(cache_store=redis_cache)
    resize_target = resizing.ResizeTarget(**resizetarget_opts)

    assert not redis_cache.exists(resize_target.unique_key)

    with pytest.raises(exc.CacheMiss):
        resize_target.get_cached_path()

    resize_target.image_store.save(image1_name, image1_data)
    resize_target.generate()

    assert redis_cache.exists(resize_target.unique_key) is True
    assert resize_target.get_cached_path() == resize_target.unique_key

    redis_cache.remove(resize_target.unique_key)
    assert redis_cache.exists(resize_target.unique_key) is False
Пример #7
0
def test_svg_resize(tmpdir, resizetarget_opts):
    svg_path = tmpdir.join('test.svg')
    svg_path.write(SVG_DATA)

    resizetarget_opts.update(
        format='png',
        source_image_relative_url='test.svg',
        dimensions='50x50',
    )
    resize_target = resizing.ResizeTarget(**resizetarget_opts)
    img_data = resize_target.generate()
    img = Image.open(io.BytesIO(img_data))

    assert img.width == 50
    assert img.height == 50

    expected = (0, 0, 0, 255)
    assert img.getpixel((0, 0)) == expected
    assert img.getpixel((49, 49)) == expected
Пример #8
0
def image1_key(image1_name, resizetarget_opts):
    target = resizing.ResizeTarget(**resizetarget_opts)
    # Obviously only the key if no processing settings have been pas
    return target.unique_key
Пример #9
0
def test_resizetarget_generate_placeholder(resizetarget_opts, image1_data):
    resize_target = resizing.ResizeTarget(**resizetarget_opts)
    resize_target.use_placeholder = True
    resize_target.generate()

    assert re.match(r'^resized-images/.+\.jpg$', resize_target.get_path())