Test deprecation warnings

This commit is contained in:
Andrew Murray 2024-08-14 18:41:39 +10:00
parent 45552b5b4f
commit 359d7592c7
2 changed files with 27 additions and 6 deletions

View File

@ -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:
@ -43,19 +47,26 @@ def test_version() -> 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")

View File

@ -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: