mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-26 05:31:02 +03:00 
			
		
		
		
	Fix up pytest.warns lambda: uses
This commit is contained in:
		
							parent
							
								
									5c8a9165ab
								
							
						
					
					
						commit
						43128ce716
					
				|  | @ -177,13 +177,14 @@ class TestEnvVars: | |||
|         Image._apply_env_variables({"PILLOW_BLOCK_SIZE": "2m"}) | ||||
|         assert Image.core.get_block_size() == 2 * 1024 * 1024 | ||||
| 
 | ||||
|     def test_warnings(self): | ||||
|         pytest.warns( | ||||
|             UserWarning, Image._apply_env_variables, {"PILLOW_ALIGNMENT": "15"} | ||||
|         ) | ||||
|         pytest.warns( | ||||
|             UserWarning, Image._apply_env_variables, {"PILLOW_BLOCK_SIZE": "1024"} | ||||
|         ) | ||||
|         pytest.warns( | ||||
|             UserWarning, Image._apply_env_variables, {"PILLOW_BLOCKS_MAX": "wat"} | ||||
|     @pytest.mark.parametrize( | ||||
|         "vars", | ||||
|         [ | ||||
|             {"PILLOW_ALIGNMENT": "15"}, | ||||
|             {"PILLOW_BLOCK_SIZE": "1024"}, | ||||
|             {"PILLOW_BLOCKS_MAX": "wat"}, | ||||
|         ], | ||||
|     ) | ||||
|     def test_warnings(self, vars): | ||||
|         with pytest.warns(UserWarning): | ||||
|             Image._apply_env_variables(vars) | ||||
|  |  | |||
|  | @ -36,12 +36,10 @@ class TestDecompressionBomb: | |||
|         Image.MAX_IMAGE_PIXELS = 128 * 128 - 1 | ||||
|         assert Image.MAX_IMAGE_PIXELS == 128 * 128 - 1 | ||||
| 
 | ||||
|         def open(): | ||||
|         with pytest.warns(Image.DecompressionBombWarning): | ||||
|             with Image.open(TEST_FILE): | ||||
|                 pass | ||||
| 
 | ||||
|         pytest.warns(Image.DecompressionBombWarning, open) | ||||
| 
 | ||||
|     def test_exception(self): | ||||
|         # Set limit to trigger exception on the test file | ||||
|         Image.MAX_IMAGE_PIXELS = 64 * 128 - 1 | ||||
|  | @ -87,7 +85,8 @@ class TestDecompressionCrop: | |||
|         # same decompression bomb warnings on them. | ||||
|         with hopper() as src: | ||||
|             box = (0, 0, src.width * 2, src.height * 2) | ||||
|             pytest.warns(Image.DecompressionBombWarning, src.crop, box) | ||||
|             with pytest.warns(Image.DecompressionBombWarning): | ||||
|                 src.crop(box) | ||||
| 
 | ||||
|     def test_crop_decompression_checks(self): | ||||
|         im = Image.new("RGB", (100, 100)) | ||||
|  | @ -95,7 +94,8 @@ class TestDecompressionCrop: | |||
|         for value in ((-9999, -9999, -9990, -9990), (-999, -999, -990, -990)): | ||||
|             assert im.crop(value).size == (9, 9) | ||||
| 
 | ||||
|         pytest.warns(Image.DecompressionBombWarning, im.crop, (-160, -160, 99, 99)) | ||||
|         with pytest.warns(Image.DecompressionBombWarning): | ||||
|             im.crop((-160, -160, 99, 99)) | ||||
| 
 | ||||
|         with pytest.raises(Image.DecompressionBombError): | ||||
|             im.crop((-99909, -99990, 99999, 99999)) | ||||
|  |  | |||
|  | @ -263,12 +263,9 @@ def test_apng_chunk_errors(): | |||
|     with Image.open("Tests/images/apng/chunk_no_actl.png") as im: | ||||
|         assert not im.is_animated | ||||
| 
 | ||||
|     def open(): | ||||
|     with pytest.warns(UserWarning): | ||||
|         with Image.open("Tests/images/apng/chunk_multi_actl.png") as im: | ||||
|             im.load() | ||||
|         assert not im.is_animated | ||||
| 
 | ||||
|     pytest.warns(UserWarning, open) | ||||
| 
 | ||||
|     with Image.open("Tests/images/apng/chunk_actl_after_idat.png") as im: | ||||
|         assert not im.is_animated | ||||
|  | @ -287,21 +284,17 @@ def test_apng_chunk_errors(): | |||
| 
 | ||||
| 
 | ||||
| def test_apng_syntax_errors(): | ||||
|     def open_frames_zero(): | ||||
|     with pytest.warns(UserWarning): | ||||
|         with Image.open("Tests/images/apng/syntax_num_frames_zero.png") as im: | ||||
|             assert not im.is_animated | ||||
|             with pytest.raises(OSError): | ||||
|                 im.load() | ||||
| 
 | ||||
|     pytest.warns(UserWarning, open_frames_zero) | ||||
| 
 | ||||
|     def open_frames_zero_default(): | ||||
|     with pytest.warns(UserWarning): | ||||
|         with Image.open("Tests/images/apng/syntax_num_frames_zero_default.png") as im: | ||||
|             assert not im.is_animated | ||||
|             im.load() | ||||
| 
 | ||||
|     pytest.warns(UserWarning, open_frames_zero_default) | ||||
| 
 | ||||
|     # we can handle this case gracefully | ||||
|     exception = None | ||||
|     with Image.open("Tests/images/apng/syntax_num_frames_low.png") as im: | ||||
|  | @ -316,13 +309,11 @@ def test_apng_syntax_errors(): | |||
|             im.seek(im.n_frames - 1) | ||||
|             im.load() | ||||
| 
 | ||||
|     def open(): | ||||
|     with pytest.warns(UserWarning): | ||||
|         with Image.open("Tests/images/apng/syntax_num_frames_invalid.png") as im: | ||||
|             assert not im.is_animated | ||||
|             im.load() | ||||
| 
 | ||||
|     pytest.warns(UserWarning, open) | ||||
| 
 | ||||
| 
 | ||||
| @pytest.mark.parametrize( | ||||
|     "test_file", | ||||
|  |  | |||
|  | @ -24,11 +24,10 @@ def test_sanity(): | |||
| 
 | ||||
| @pytest.mark.skipif(is_pypy(), reason="Requires CPython") | ||||
| def test_unclosed_file(): | ||||
|     def open(): | ||||
|     with pytest.warns(ResourceWarning): | ||||
|         im = Image.open(TEST_FILE) | ||||
|         im.load() | ||||
| 
 | ||||
|     pytest.warns(ResourceWarning, open) | ||||
|         del im | ||||
| 
 | ||||
| 
 | ||||
| def test_closed_file(): | ||||
|  |  | |||
|  | @ -32,11 +32,10 @@ def test_sanity(): | |||
| 
 | ||||
| @pytest.mark.skipif(is_pypy(), reason="Requires CPython") | ||||
| def test_unclosed_file(): | ||||
|     def open(): | ||||
|     with pytest.warns(ResourceWarning): | ||||
|         im = Image.open(static_test_file) | ||||
|         im.load() | ||||
| 
 | ||||
|     pytest.warns(ResourceWarning, open) | ||||
|         del im | ||||
| 
 | ||||
| 
 | ||||
| def test_closed_file(): | ||||
|  |  | |||
|  | @ -32,11 +32,10 @@ def test_sanity(): | |||
| 
 | ||||
| @pytest.mark.skipif(is_pypy(), reason="Requires CPython") | ||||
| def test_unclosed_file(): | ||||
|     def open(): | ||||
|     with pytest.warns(ResourceWarning): | ||||
|         im = Image.open(TEST_GIF) | ||||
|         im.load() | ||||
| 
 | ||||
|     pytest.warns(ResourceWarning, open) | ||||
|         del im | ||||
| 
 | ||||
| 
 | ||||
| def test_closed_file(): | ||||
|  | @ -1087,7 +1086,8 @@ def test_rgb_transparency(tmp_path): | |||
|     im = Image.new("RGB", (1, 1)) | ||||
|     im.info["transparency"] = b"" | ||||
|     ims = [Image.new("RGB", (1, 1))] | ||||
|     pytest.warns(UserWarning, im.save, out, save_all=True, append_images=ims) | ||||
|     with pytest.warns(UserWarning): | ||||
|         im.save(out, save_all=True, append_images=ims) | ||||
| 
 | ||||
|     with Image.open(out) as reloaded: | ||||
|         assert "transparency" not in reloaded.info | ||||
|  |  | |||
|  | @ -212,12 +212,10 @@ def test_save_append_images(tmp_path): | |||
| def test_unexpected_size(): | ||||
|     # This image has been manually hexedited to state that it is 16x32 | ||||
|     # while the image within is still 16x16 | ||||
|     def open(): | ||||
|     with pytest.warns(UserWarning): | ||||
|         with Image.open("Tests/images/hopper_unexpected.ico") as im: | ||||
|             assert im.size == (16, 16) | ||||
| 
 | ||||
|     pytest.warns(UserWarning, open) | ||||
| 
 | ||||
| 
 | ||||
| def test_draw_reloaded(tmp_path): | ||||
|     with Image.open(TEST_ICO_FILE) as im: | ||||
|  |  | |||
|  | @ -28,11 +28,10 @@ def test_name_limit(tmp_path): | |||
| 
 | ||||
| @pytest.mark.skipif(is_pypy(), reason="Requires CPython") | ||||
| def test_unclosed_file(): | ||||
|     def open(): | ||||
|     with pytest.warns(ResourceWarning): | ||||
|         im = Image.open(TEST_IM) | ||||
|         im.load() | ||||
| 
 | ||||
|     pytest.warns(ResourceWarning, open) | ||||
|         del im | ||||
| 
 | ||||
| 
 | ||||
| def test_closed_file(): | ||||
|  |  | |||
|  | @ -38,11 +38,10 @@ def test_sanity(test_file): | |||
| 
 | ||||
| @pytest.mark.skipif(is_pypy(), reason="Requires CPython") | ||||
| def test_unclosed_file(): | ||||
|     def open(): | ||||
|     with pytest.warns(ResourceWarning): | ||||
|         im = Image.open(test_files[0]) | ||||
|         im.load() | ||||
| 
 | ||||
|     pytest.warns(ResourceWarning, open) | ||||
|         del im | ||||
| 
 | ||||
| 
 | ||||
| def test_closed_file(): | ||||
|  |  | |||
|  | @ -23,11 +23,10 @@ def test_sanity(): | |||
| 
 | ||||
| @pytest.mark.skipif(is_pypy(), reason="Requires CPython") | ||||
| def test_unclosed_file(): | ||||
|     def open(): | ||||
|     with pytest.warns(ResourceWarning): | ||||
|         im = Image.open(test_file) | ||||
|         im.load() | ||||
| 
 | ||||
|     pytest.warns(ResourceWarning, open) | ||||
|         del im | ||||
| 
 | ||||
| 
 | ||||
| def test_closed_file(): | ||||
|  |  | |||
|  | @ -21,11 +21,10 @@ def test_sanity(): | |||
| 
 | ||||
| @pytest.mark.skipif(is_pypy(), reason="Requires CPython") | ||||
| def test_unclosed_file(): | ||||
|     def open(): | ||||
|     with pytest.warns(ResourceWarning): | ||||
|         im = Image.open(TEST_FILE) | ||||
|         im.load() | ||||
| 
 | ||||
|     pytest.warns(ResourceWarning, open) | ||||
|         del im | ||||
| 
 | ||||
| 
 | ||||
| def test_closed_file(): | ||||
|  |  | |||
|  | @ -29,11 +29,9 @@ def test_sanity(codec, test_path, format): | |||
| 
 | ||||
| @pytest.mark.skipif(is_pypy(), reason="Requires CPython") | ||||
| def test_unclosed_file(): | ||||
|     def open(): | ||||
|     with pytest.warns(ResourceWarning): | ||||
|         TarIO.TarIO(TEST_TAR_FILE, "hopper.jpg") | ||||
| 
 | ||||
|     pytest.warns(ResourceWarning, open) | ||||
| 
 | ||||
| 
 | ||||
| def test_close(): | ||||
|     with warnings.catch_warnings(): | ||||
|  |  | |||
|  | @ -163,7 +163,9 @@ def test_save_id_section(tmp_path): | |||
| 
 | ||||
|     # Save with custom id section greater than 255 characters | ||||
|     id_section = b"Test content" * 25 | ||||
|     pytest.warns(UserWarning, lambda: im.save(out, id_section=id_section)) | ||||
|     with pytest.warns(UserWarning): | ||||
|         im.save(out, id_section=id_section) | ||||
| 
 | ||||
|     with Image.open(out) as test_im: | ||||
|         assert test_im.info["id_section"] == id_section[:255] | ||||
| 
 | ||||
|  |  | |||
|  | @ -57,11 +57,10 @@ class TestFileTiff: | |||
| 
 | ||||
|     @pytest.mark.skipif(is_pypy(), reason="Requires CPython") | ||||
|     def test_unclosed_file(self): | ||||
|         def open(): | ||||
|         with pytest.warns(ResourceWarning): | ||||
|             im = Image.open("Tests/images/multipage.tiff") | ||||
|             im.load() | ||||
| 
 | ||||
|         pytest.warns(ResourceWarning, open) | ||||
|             del im | ||||
| 
 | ||||
|     def test_closed_file(self): | ||||
|         with warnings.catch_warnings(): | ||||
|  | @ -231,7 +230,8 @@ class TestFileTiff: | |||
|     def test_bad_exif(self): | ||||
|         with Image.open("Tests/images/hopper_bad_exif.jpg") as i: | ||||
|             # Should not raise struct.error. | ||||
|             pytest.warns(UserWarning, i._getexif) | ||||
|             with pytest.warns(UserWarning): | ||||
|                 i._getexif() | ||||
| 
 | ||||
|     def test_save_rgba(self, tmp_path): | ||||
|         im = hopper("RGBA") | ||||
|  |  | |||
|  | @ -252,7 +252,8 @@ def test_empty_metadata(): | |||
|     head = f.read(8) | ||||
|     info = TiffImagePlugin.ImageFileDirectory(head) | ||||
|     # Should not raise struct.error. | ||||
|     pytest.warns(UserWarning, info.load, f) | ||||
|     with pytest.warns(UserWarning): | ||||
|         info.load(f) | ||||
| 
 | ||||
| 
 | ||||
| def test_iccprofile(tmp_path): | ||||
|  | @ -422,7 +423,8 @@ def test_too_many_entries(): | |||
|     ifd.tagtype[277] = TiffTags.SHORT | ||||
| 
 | ||||
|     # Should not raise ValueError. | ||||
|     pytest.warns(UserWarning, lambda: ifd[277]) | ||||
|     with pytest.warns(UserWarning): | ||||
|         _ = ifd[277] | ||||
| 
 | ||||
| 
 | ||||
| def test_tag_group_data(): | ||||
|  |  | |||
|  | @ -29,7 +29,9 @@ class TestUnsupportedWebp: | |||
|             WebPImagePlugin.SUPPORTED = False | ||||
| 
 | ||||
|         file_path = "Tests/images/hopper.webp" | ||||
|         pytest.warns(UserWarning, lambda: pytest.raises(OSError, Image.open, file_path)) | ||||
|         with pytest.warns(UserWarning): | ||||
|             with pytest.raises(OSError): | ||||
|                 Image.open(file_path) | ||||
| 
 | ||||
|         if HAVE_WEBP: | ||||
|             WebPImagePlugin.SUPPORTED = True | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user