mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 01:47:47 +03:00 
			
		
		
		
	Skip tests unless JPEG 2000 is available
This commit is contained in:
		
							parent
							
								
									489d6f32f1
								
							
						
					
					
						commit
						9c9aa9964e
					
				| 
						 | 
					@ -4,15 +4,13 @@ import warnings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import pytest
 | 
					import pytest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from PIL import IcnsImagePlugin, Image, _binary, features
 | 
					from PIL import IcnsImagePlugin, Image, _binary
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .helper import assert_image_equal, assert_image_similar_tofile
 | 
					from .helper import assert_image_equal, assert_image_similar_tofile, skip_unless_feature
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# sample icon file
 | 
					# sample icon file
 | 
				
			||||||
TEST_FILE = "Tests/images/pillow.icns"
 | 
					TEST_FILE = "Tests/images/pillow.icns"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENABLE_JPEG2K = features.check_codec("jpg_2000")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
def test_sanity():
 | 
					def test_sanity():
 | 
				
			||||||
    # Loading this icon by default should result in the largest size
 | 
					    # Loading this icon by default should result in the largest size
 | 
				
			||||||
| 
						 | 
					@ -111,14 +109,12 @@ def test_older_icon():
 | 
				
			||||||
                assert im2.size == (wr, hr)
 | 
					                assert im2.size == (wr, hr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@skip_unless_feature("jpg_2000")
 | 
				
			||||||
def test_jp2_icon():
 | 
					def test_jp2_icon():
 | 
				
			||||||
    # This icon uses JPEG 2000 images instead of the PNG images.
 | 
					    # This icon uses JPEG 2000 images instead of the PNG images.
 | 
				
			||||||
    # The advantage of doing this is that OS X 10.5 supports JPEG 2000
 | 
					    # The advantage of doing this is that OS X 10.5 supports JPEG 2000
 | 
				
			||||||
    # but not PNG; some commercial software therefore does just this.
 | 
					    # but not PNG; some commercial software therefore does just this.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if not ENABLE_JPEG2K:
 | 
					 | 
				
			||||||
        return
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    with Image.open("Tests/images/pillow3.icns") as im:
 | 
					    with Image.open("Tests/images/pillow3.icns") as im:
 | 
				
			||||||
        for w, h, r in im.info["sizes"]:
 | 
					        for w, h, r in im.info["sizes"]:
 | 
				
			||||||
            wr = w * r
 | 
					            wr = w * r
 | 
				
			||||||
| 
						 | 
					@ -149,6 +145,7 @@ def test_not_an_icns_file():
 | 
				
			||||||
            IcnsImagePlugin.IcnsFile(fp)
 | 
					            IcnsImagePlugin.IcnsFile(fp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@skip_unless_feature("jpg_2000")
 | 
				
			||||||
def test_icns_decompression_bomb():
 | 
					def test_icns_decompression_bomb():
 | 
				
			||||||
    with Image.open(
 | 
					    with Image.open(
 | 
				
			||||||
        "Tests/images/oom-8ed3316a4109213ca96fb8a256a0bfefdece1461.icns"
 | 
					        "Tests/images/oom-8ed3316a4109213ca96fb8a256a0bfefdece1461.icns"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@ import warnings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import pytest
 | 
					import pytest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from PIL import Image, ImageDraw, ImagePalette, UnidentifiedImageError
 | 
					from PIL import Image, ImageDraw, ImagePalette, UnidentifiedImageError, features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .helper import (
 | 
					from .helper import (
 | 
				
			||||||
    assert_image_equal,
 | 
					    assert_image_equal,
 | 
				
			||||||
| 
						 | 
					@ -161,6 +161,8 @@ class TestImage:
 | 
				
			||||||
            assert im.size == (128, 128)
 | 
					            assert im.size == (128, 128)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for ext in (".jpg", ".jp2"):
 | 
					            for ext in (".jpg", ".jp2"):
 | 
				
			||||||
 | 
					                if ext == ".jp2" and not features.check_codec("jpg_2000"):
 | 
				
			||||||
 | 
					                    pytest.skip("jpg_2000 not available")
 | 
				
			||||||
                temp_file = str(tmp_path / ("temp." + ext))
 | 
					                temp_file = str(tmp_path / ("temp." + ext))
 | 
				
			||||||
                if os.path.exists(temp_file):
 | 
					                if os.path.exists(temp_file):
 | 
				
			||||||
                    os.remove(temp_file)
 | 
					                    os.remove(temp_file)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user