mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 09:57:43 +03:00 
			
		
		
		
	Merge pull request #6919 from radarhere/tiff
Moved tests that require libtiff
This commit is contained in:
		
						commit
						28c89b1b0a
					
				| 
						 | 
					@ -984,6 +984,36 @@ class TestFileLibTiff(LibTiffTestCase):
 | 
				
			||||||
        ) as im:
 | 
					        ) as im:
 | 
				
			||||||
            assert_image_equal_tofile(im, "Tests/images/old-style-jpeg-compression.png")
 | 
					            assert_image_equal_tofile(im, "Tests/images/old-style-jpeg-compression.png")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.parametrize(
 | 
				
			||||||
 | 
					        "file_name, mode, size, tile",
 | 
				
			||||||
 | 
					        [
 | 
				
			||||||
 | 
					            (
 | 
				
			||||||
 | 
					                "tiff_wrong_bits_per_sample.tiff",
 | 
				
			||||||
 | 
					                "RGBA",
 | 
				
			||||||
 | 
					                (52, 53),
 | 
				
			||||||
 | 
					                [("raw", (0, 0, 52, 53), 160, ("RGBA", 0, 1))],
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            (
 | 
				
			||||||
 | 
					                "tiff_wrong_bits_per_sample_2.tiff",
 | 
				
			||||||
 | 
					                "RGB",
 | 
				
			||||||
 | 
					                (16, 16),
 | 
				
			||||||
 | 
					                [("raw", (0, 0, 16, 16), 8, ("RGB", 0, 1))],
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            (
 | 
				
			||||||
 | 
					                "tiff_wrong_bits_per_sample_3.tiff",
 | 
				
			||||||
 | 
					                "RGBA",
 | 
				
			||||||
 | 
					                (512, 256),
 | 
				
			||||||
 | 
					                [("libtiff", (0, 0, 512, 256), 0, ("RGBA", "tiff_lzw", False, 48782))],
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    def test_wrong_bits_per_sample(self, file_name, mode, size, tile):
 | 
				
			||||||
 | 
					        with Image.open("Tests/images/" + file_name) as im:
 | 
				
			||||||
 | 
					            assert im.mode == mode
 | 
				
			||||||
 | 
					            assert im.size == size
 | 
				
			||||||
 | 
					            assert im.tile == tile
 | 
				
			||||||
 | 
					            im.load()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_no_rows_per_strip(self):
 | 
					    def test_no_rows_per_strip(self):
 | 
				
			||||||
        # This image does not have a RowsPerStrip TIFF tag
 | 
					        # This image does not have a RowsPerStrip TIFF tag
 | 
				
			||||||
        infile = "Tests/images/no_rows_per_strip.tif"
 | 
					        infile = "Tests/images/no_rows_per_strip.tif"
 | 
				
			||||||
| 
						 | 
					@ -1071,3 +1101,21 @@ class TestFileLibTiff(LibTiffTestCase):
 | 
				
			||||||
        out = str(tmp_path / "temp.tif")
 | 
					        out = str(tmp_path / "temp.tif")
 | 
				
			||||||
        for _ in range(10000):
 | 
					        for _ in range(10000):
 | 
				
			||||||
            im.save(out, compression="jpeg")
 | 
					            im.save(out, compression="jpeg")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.parametrize(
 | 
				
			||||||
 | 
					        "path, sizes",
 | 
				
			||||||
 | 
					        (
 | 
				
			||||||
 | 
					            ("Tests/images/hopper.tif", ()),
 | 
				
			||||||
 | 
					            ("Tests/images/child_ifd.tiff", (16, 8)),
 | 
				
			||||||
 | 
					            ("Tests/images/child_ifd_jpeg.tiff", (20,)),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    def test_get_child_images(self, path, sizes):
 | 
				
			||||||
 | 
					        with Image.open(path) as im:
 | 
				
			||||||
 | 
					            ims = im.get_child_images()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assert len(ims) == len(sizes)
 | 
				
			||||||
 | 
					        for i, im in enumerate(ims):
 | 
				
			||||||
 | 
					            w = sizes[i]
 | 
				
			||||||
 | 
					            expected = Image.new("RGB", (w, w), "#f00")
 | 
				
			||||||
 | 
					            assert_image_similar(im, expected, 1)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -84,24 +84,6 @@ class TestFileTiff:
 | 
				
			||||||
            with Image.open("Tests/images/multipage.tiff") as im:
 | 
					            with Image.open("Tests/images/multipage.tiff") as im:
 | 
				
			||||||
                im.load()
 | 
					                im.load()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @pytest.mark.parametrize(
 | 
					 | 
				
			||||||
        "path, sizes",
 | 
					 | 
				
			||||||
        (
 | 
					 | 
				
			||||||
            ("Tests/images/hopper.tif", ()),
 | 
					 | 
				
			||||||
            ("Tests/images/child_ifd.tiff", (16, 8)),
 | 
					 | 
				
			||||||
            ("Tests/images/child_ifd_jpeg.tiff", (20,)),
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
    def test_get_child_images(self, path, sizes):
 | 
					 | 
				
			||||||
        with Image.open(path) as im:
 | 
					 | 
				
			||||||
            ims = im.get_child_images()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        assert len(ims) == len(sizes)
 | 
					 | 
				
			||||||
        for i, im in enumerate(ims):
 | 
					 | 
				
			||||||
            w = sizes[i]
 | 
					 | 
				
			||||||
            expected = Image.new("RGB", (w, w), "#f00")
 | 
					 | 
				
			||||||
            assert_image_similar(im, expected, 1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def test_mac_tiff(self):
 | 
					    def test_mac_tiff(self):
 | 
				
			||||||
        # Read RGBa images from macOS [@PIL136]
 | 
					        # Read RGBa images from macOS [@PIL136]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -118,36 +100,6 @@ class TestFileTiff:
 | 
				
			||||||
        with Image.open("Tests/images/hopper_bigtiff.tif") as im:
 | 
					        with Image.open("Tests/images/hopper_bigtiff.tif") as im:
 | 
				
			||||||
            assert_image_equal_tofile(im, "Tests/images/hopper.tif")
 | 
					            assert_image_equal_tofile(im, "Tests/images/hopper.tif")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @pytest.mark.parametrize(
 | 
					 | 
				
			||||||
        "file_name,mode,size,tile",
 | 
					 | 
				
			||||||
        [
 | 
					 | 
				
			||||||
            (
 | 
					 | 
				
			||||||
                "tiff_wrong_bits_per_sample.tiff",
 | 
					 | 
				
			||||||
                "RGBA",
 | 
					 | 
				
			||||||
                (52, 53),
 | 
					 | 
				
			||||||
                [("raw", (0, 0, 52, 53), 160, ("RGBA", 0, 1))],
 | 
					 | 
				
			||||||
            ),
 | 
					 | 
				
			||||||
            (
 | 
					 | 
				
			||||||
                "tiff_wrong_bits_per_sample_2.tiff",
 | 
					 | 
				
			||||||
                "RGB",
 | 
					 | 
				
			||||||
                (16, 16),
 | 
					 | 
				
			||||||
                [("raw", (0, 0, 16, 16), 8, ("RGB", 0, 1))],
 | 
					 | 
				
			||||||
            ),
 | 
					 | 
				
			||||||
            (
 | 
					 | 
				
			||||||
                "tiff_wrong_bits_per_sample_3.tiff",
 | 
					 | 
				
			||||||
                "RGBA",
 | 
					 | 
				
			||||||
                (512, 256),
 | 
					 | 
				
			||||||
                [("libtiff", (0, 0, 512, 256), 0, ("RGBA", "tiff_lzw", False, 48782))],
 | 
					 | 
				
			||||||
            ),
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
    def test_wrong_bits_per_sample(self, file_name, mode, size, tile):
 | 
					 | 
				
			||||||
        with Image.open("Tests/images/" + file_name) as im:
 | 
					 | 
				
			||||||
            assert im.mode == mode
 | 
					 | 
				
			||||||
            assert im.size == size
 | 
					 | 
				
			||||||
            assert im.tile == tile
 | 
					 | 
				
			||||||
            im.load()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def test_set_legacy_api(self):
 | 
					    def test_set_legacy_api(self):
 | 
				
			||||||
        ifd = TiffImagePlugin.ImageFileDirectory_v2()
 | 
					        ifd = TiffImagePlugin.ImageFileDirectory_v2()
 | 
				
			||||||
        with pytest.raises(Exception) as e:
 | 
					        with pytest.raises(Exception) as e:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user