mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-01-13 18:56:17 +03:00
TestSuite: Add support for GraphicsMagick
Add support to run the tests using GraphicsMagick's "gm convert" instead of ImageMagick's "convert".
This commit is contained in:
parent
7ab8ec9b91
commit
ef864d72f1
|
@ -257,8 +257,16 @@ def netpbm_available():
|
||||||
return bool(shutil.which("ppmquant") and shutil.which("ppmtogif"))
|
return bool(shutil.which("ppmquant") and shutil.which("ppmtogif"))
|
||||||
|
|
||||||
|
|
||||||
|
def convert_available():
|
||||||
|
return imagemagick_available() or graphicsmagick_available()
|
||||||
|
|
||||||
|
|
||||||
def imagemagick_available():
|
def imagemagick_available():
|
||||||
return bool(IMCONVERT and shutil.which(IMCONVERT))
|
return bool(IMCONVERT and shutil.which(IMCONVERT[0]))
|
||||||
|
|
||||||
|
|
||||||
|
def graphicsmagick_available():
|
||||||
|
return bool(GMCONVERT and shutil.which(GMCONVERT[0]))
|
||||||
|
|
||||||
|
|
||||||
def on_appveyor():
|
def on_appveyor():
|
||||||
|
@ -298,10 +306,20 @@ def is_mingw():
|
||||||
|
|
||||||
if sys.platform == "win32":
|
if sys.platform == "win32":
|
||||||
IMCONVERT = os.environ.get("MAGICK_HOME", "")
|
IMCONVERT = os.environ.get("MAGICK_HOME", "")
|
||||||
|
GMCONVERT = None
|
||||||
if IMCONVERT:
|
if IMCONVERT:
|
||||||
IMCONVERT = os.path.join(IMCONVERT, "convert.exe")
|
IMCONVERT = [os.path.join(IMCONVERT, "convert.exe")]
|
||||||
|
GMCONVERT = [os.path.join(IMCONVERT, "gm.exe"), "convert"]
|
||||||
else:
|
else:
|
||||||
IMCONVERT = "convert"
|
IMCONVERT = ["convert"]
|
||||||
|
GMCONVERT = ["gm", "convert"]
|
||||||
|
|
||||||
|
if imagemagick_available():
|
||||||
|
CONVERT = IMCONVERT
|
||||||
|
elif graphicsmagick_available():
|
||||||
|
CONVERT = GMCONVERT
|
||||||
|
else:
|
||||||
|
CONVERT = None
|
||||||
|
|
||||||
|
|
||||||
class cached_property:
|
class cached_property:
|
||||||
|
|
|
@ -5,9 +5,9 @@ import pytest
|
||||||
|
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
from .helper import IMCONVERT, assert_image_equal, hopper, imagemagick_available
|
from .helper import CONVERT, assert_image_equal, convert_available, hopper
|
||||||
|
|
||||||
_roundtrip = imagemagick_available()
|
_roundtrip = convert_available()
|
||||||
|
|
||||||
|
|
||||||
def helper_save_as_palm(tmp_path, mode):
|
def helper_save_as_palm(tmp_path, mode):
|
||||||
|
@ -23,13 +23,13 @@ def helper_save_as_palm(tmp_path, mode):
|
||||||
assert os.path.getsize(outfile) > 0
|
assert os.path.getsize(outfile) > 0
|
||||||
|
|
||||||
|
|
||||||
def open_with_imagemagick(tmp_path, f):
|
def open_with_convert(tmp_path, f):
|
||||||
if not imagemagick_available():
|
if not convert_available():
|
||||||
raise OSError()
|
raise OSError()
|
||||||
|
|
||||||
outfile = str(tmp_path / "temp.png")
|
outfile = str(tmp_path / "temp.png")
|
||||||
rc = subprocess.call(
|
rc = subprocess.call(
|
||||||
[IMCONVERT, f, outfile], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT
|
CONVERT + [f, outfile], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT
|
||||||
)
|
)
|
||||||
if rc:
|
if rc:
|
||||||
raise OSError
|
raise OSError
|
||||||
|
@ -44,7 +44,7 @@ def roundtrip(tmp_path, mode):
|
||||||
outfile = str(tmp_path / "temp.palm")
|
outfile = str(tmp_path / "temp.palm")
|
||||||
|
|
||||||
im.save(outfile)
|
im.save(outfile)
|
||||||
converted = open_with_imagemagick(tmp_path, outfile)
|
converted = open_with_convert(tmp_path, outfile)
|
||||||
assert_image_equal(converted, im)
|
assert_image_equal(converted, im)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user