Skip to content

Commit

Permalink
Test deprecation warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
radarhere committed Aug 14, 2024
1 parent 45552b5 commit 359d759
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 6 deletions.
21 changes: 16 additions & 5 deletions Tests/test_features.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,11 @@ def test_check() -> None:
for codec in features.codecs:
assert features.check_codec(codec) == features.check(codec)
for feature in features.features:
assert features.check_feature(feature) == features.check(feature)
if "webp" in feature:
with pytest.warns(DeprecationWarning):
assert features.check_feature(feature) == features.check(feature)
else:
assert features.check_feature(feature) == features.check(feature)


def test_version() -> None:
Expand All @@ -43,19 +47,26 @@ def test(name: str, function: Callable[[str], str | None]) -> None:
for codec in features.codecs:
test(codec, features.version_codec)
for feature in features.features:
test(feature, features.version_feature)
if "webp" in feature:
with pytest.warns(DeprecationWarning):
test(feature, features.version_feature)
else:
test(feature, features.version_feature)


def test_webp_transparency() -> None:
assert features.check("transp_webp") == features.check_module("webp")
with pytest.warns(DeprecationWarning):
assert features.check("transp_webp") == features.check_module("webp")


def test_webp_mux() -> None:
assert features.check("webp_mux") == features.check_module("webp")
with pytest.warns(DeprecationWarning):
assert features.check("webp_mux") == features.check_module("webp")


def test_webp_anim() -> None:
assert features.check("webp_anim") == features.check_module("webp")
with pytest.warns(DeprecationWarning):
assert features.check("webp_anim") == features.check_module("webp")


@skip_unless_feature("libjpeg_turbo")
Expand Down
12 changes: 11 additions & 1 deletion src/PIL/features.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,17 @@ def get_supported_features() -> list[str]:
"""
:returns: A list of all supported features.
"""
return [f for f in features if check_feature(f)]
supported_features = []
for f, (module, flag, _) in features.items():
if flag is True:
for feature, (feature_module, _) in modules.items():
if feature_module == module:
if check_module(feature):
supported_features.append(f)
break
elif check_feature(f):
supported_features.append(f)
return supported_features


def check(feature: str) -> bool | None:
Expand Down

0 comments on commit 359d759

Please sign in to comment.