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')
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")
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()
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
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
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
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
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
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())