Skip to content

Commit c757439

Browse files
authored
Merge pull request #8091 from radarhere/type_hints_tests
2 parents a49a42a + e68cec6 commit c757439

File tree

10 files changed

+36
-22
lines changed

10 files changed

+36
-22
lines changed

Tests/oss-fuzz/test_fuzzers.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@
1212

1313
if sys.platform.startswith("win32"):
1414
pytest.skip("Fuzzer is linux only", allow_module_level=True)
15-
if features.check("libjpeg_turbo"):
16-
version = packaging.version.parse(features.version("libjpeg_turbo"))
15+
libjpeg_turbo_version = features.version("libjpeg_turbo")
16+
if libjpeg_turbo_version is not None:
17+
version = packaging.version.parse(libjpeg_turbo_version)
1718
if version.major == 2 and version.minor == 0:
1819
pytestmark = pytest.mark.valgrind_known_error(
1920
reason="Known failing with libjpeg_turbo 2.0"

Tests/test_features.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def test_version() -> None:
3030
# Check the correctness of the convenience function
3131
# and the format of version numbers
3232

33-
def test(name: str, function: Callable[[str], bool]) -> None:
33+
def test(name: str, function: Callable[[str], str | None]) -> None:
3434
version = features.version(name)
3535
if not features.check(name):
3636
assert version is None
@@ -67,12 +67,16 @@ def test_webp_anim() -> None:
6767

6868
@skip_unless_feature("libjpeg_turbo")
6969
def test_libjpeg_turbo_version() -> None:
70-
assert re.search(r"\d+\.\d+\.\d+$", features.version("libjpeg_turbo"))
70+
version = features.version("libjpeg_turbo")
71+
assert version is not None
72+
assert re.search(r"\d+\.\d+\.\d+$", version)
7173

7274

7375
@skip_unless_feature("libimagequant")
7476
def test_libimagequant_version() -> None:
75-
assert re.search(r"\d+\.\d+\.\d+$", features.version("libimagequant"))
77+
version = features.version("libimagequant")
78+
assert version is not None
79+
assert re.search(r"\d+\.\d+\.\d+$", version)
7680

7781

7882
@pytest.mark.parametrize("feature", features.modules)

Tests/test_file_jpeg.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@ def gen_random_image(self, size: tuple[int, int], mode: str = "RGB") -> Image.Im
7070

7171
def test_sanity(self) -> None:
7272
# internal version number
73-
assert re.search(r"\d+\.\d+$", features.version_codec("jpg"))
73+
version = features.version_codec("jpg")
74+
assert version is not None
75+
assert re.search(r"\d+\.\d+$", version)
7476

7577
with Image.open(TEST_FILE) as im:
7678
im.load()

Tests/test_file_jpeg2k.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ def roundtrip(im: Image.Image, **options: Any) -> Image.Image:
4848

4949
def test_sanity() -> None:
5050
# Internal version number
51-
assert re.search(r"\d+\.\d+\.\d+$", features.version_codec("jpg_2000"))
51+
version = features.version_codec("jpg_2000")
52+
assert version is not None
53+
assert re.search(r"\d+\.\d+\.\d+$", version)
5254

5355
with Image.open("Tests/images/test-card-lossless.jp2") as im:
5456
px = im.load()

Tests/test_file_libtiff.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ def _assert_noerr(self, tmp_path: Path, im: TiffImagePlugin.TiffImageFile) -> No
5252

5353
class TestFileLibTiff(LibTiffTestCase):
5454
def test_version(self) -> None:
55-
assert re.search(r"\d+\.\d+\.\d+$", features.version_codec("libtiff"))
55+
version = features.version_codec("libtiff")
56+
assert version is not None
57+
assert re.search(r"\d+\.\d+\.\d+$", version)
5658

5759
def test_g4_tiff(self, tmp_path: Path) -> None:
5860
"""Test the ordinary file path load path"""

Tests/test_file_png.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ def get_chunks(self, filename: str) -> list[bytes]:
8585

8686
def test_sanity(self, tmp_path: Path) -> None:
8787
# internal version number
88-
assert re.search(
89-
r"\d+(\.\d+){1,3}(\.zlib\-ng)?$", features.version_codec("zlib")
90-
)
88+
version = features.version_codec("zlib")
89+
assert version is not None
90+
assert re.search(r"\d+(\.\d+){1,3}(\.zlib\-ng)?$", version)
9191

9292
test_file = str(tmp_path / "temp.png")
9393

Tests/test_file_webp.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ def setup_method(self) -> None:
4949
def test_version(self) -> None:
5050
_webp.WebPDecoderVersion()
5151
_webp.WebPDecoderBuggyAlpha()
52-
assert re.search(r"\d+\.\d+\.\d+$", features.version_module("webp"))
52+
version = features.version_module("webp")
53+
assert version is not None
54+
assert re.search(r"\d+\.\d+\.\d+$", version)
5355

5456
def test_read_rgb(self) -> None:
5557
"""

Tests/test_image_quantize.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@ def test_sanity() -> None:
2424
def test_libimagequant_quantize() -> None:
2525
image = hopper()
2626
if is_ppc64le():
27-
libimagequant = parse_version(features.version_feature("libimagequant"))
28-
if libimagequant < parse_version("4"):
27+
version = features.version_feature("libimagequant")
28+
assert version is not None
29+
if parse_version(version) < parse_version("4"):
2930
pytest.skip("Fails with libimagequant earlier than 4.0.0 on ppc64le")
3031
converted = image.quantize(100, Image.Quantize.LIBIMAGEQUANT)
3132
assert converted.mode == "P"

Tests/test_image_reduce.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def test_unsupported_modes(mode: str) -> None:
102102
def get_image(mode: str) -> Image.Image:
103103
mode_info = ImageMode.getmode(mode)
104104
if mode_info.basetype == "L":
105-
bands = [gradients_image]
105+
bands: list[Image.Image] = [gradients_image]
106106
for _ in mode_info.bands[1:]:
107107
# rotate previous image
108108
band = bands[-1].transpose(Image.Transpose.ROTATE_90)

Tests/test_imageops_usm.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44

55
import pytest
66

7-
from PIL import Image, ImageFilter
7+
from PIL import Image, ImageFile, ImageFilter
88

99

1010
@pytest.fixture
11-
def test_images() -> Generator[dict[str, Image.Image], None, None]:
11+
def test_images() -> Generator[dict[str, ImageFile.ImageFile], None, None]:
1212
ims = {
1313
"im": Image.open("Tests/images/hopper.ppm"),
1414
"snakes": Image.open("Tests/images/color_snakes.png"),
@@ -20,7 +20,7 @@ def test_images() -> Generator[dict[str, Image.Image], None, None]:
2020
im.close()
2121

2222

23-
def test_filter_api(test_images: dict[str, Image.Image]) -> None:
23+
def test_filter_api(test_images: dict[str, ImageFile.ImageFile]) -> None:
2424
im = test_images["im"]
2525

2626
test_filter = ImageFilter.GaussianBlur(2.0)
@@ -34,7 +34,7 @@ def test_filter_api(test_images: dict[str, Image.Image]) -> None:
3434
assert i.size == (128, 128)
3535

3636

37-
def test_usm_formats(test_images: dict[str, Image.Image]) -> None:
37+
def test_usm_formats(test_images: dict[str, ImageFile.ImageFile]) -> None:
3838
im = test_images["im"]
3939

4040
usm = ImageFilter.UnsharpMask
@@ -52,7 +52,7 @@ def test_usm_formats(test_images: dict[str, Image.Image]) -> None:
5252
im.convert("YCbCr").filter(usm)
5353

5454

55-
def test_blur_formats(test_images: dict[str, Image.Image]) -> None:
55+
def test_blur_formats(test_images: dict[str, ImageFile.ImageFile]) -> None:
5656
im = test_images["im"]
5757

5858
blur = ImageFilter.GaussianBlur
@@ -70,7 +70,7 @@ def test_blur_formats(test_images: dict[str, Image.Image]) -> None:
7070
im.convert("YCbCr").filter(blur)
7171

7272

73-
def test_usm_accuracy(test_images: dict[str, Image.Image]) -> None:
73+
def test_usm_accuracy(test_images: dict[str, ImageFile.ImageFile]) -> None:
7474
snakes = test_images["snakes"]
7575

7676
src = snakes.convert("RGB")
@@ -79,7 +79,7 @@ def test_usm_accuracy(test_images: dict[str, Image.Image]) -> None:
7979
assert i.tobytes() == src.tobytes()
8080

8181

82-
def test_blur_accuracy(test_images: dict[str, Image.Image]) -> None:
82+
def test_blur_accuracy(test_images: dict[str, ImageFile.ImageFile]) -> None:
8383
snakes = test_images["snakes"]
8484

8585
i = snakes.filter(ImageFilter.GaussianBlur(0.4))

0 commit comments

Comments
 (0)