def test_jpeg_exif_preserve(jpg_exif_image, tmp_path): # in filesystem dst = tmp_path / "out.jpg" optimize_jpeg(src=jpg_exif_image, dst=dst) assert piexif.load( str(dst))["Exif"] and (piexif.load(str(dst))["Exif"] == piexif.load( str(jpg_exif_image.resolve()))["Exif"]) # in memory with open(jpg_exif_image, "rb") as fl: src_bytes = fl.read() optimized_img = optimize_jpeg(src=io.BytesIO(src_bytes)) assert piexif.load(optimized_img.getvalue())["Exif"] and ( piexif.load(src_bytes)["Exif"] == piexif.load( optimized_img.getvalue())["Exif"])
def test_wrong_extension_optim(tmp_path, png_image): dst = tmp_path.joinpath("image.jpg") shutil.copy(png_image, dst) with pytest.raises(Exception): optimize_jpeg(dst, dst)
def test_dynamic_jpeg_quality(jpg_image, tmp_path): # check optimization without fast mode dst = tmp_path / "out.jpg" optimize_jpeg(src=jpg_image, dst=dst, fast_mode=False) assert os.path.getsize(dst) < os.path.getsize(jpg_image)