Check that _EXTENSION_PLUGIN contains all registered extensions (#143)

This commit is contained in:
Hugo van Kemenade 2026-01-19 11:21:00 +02:00 committed by GitHub
commit 7f38f980dd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 10 additions and 3 deletions

View File

@ -14,6 +14,10 @@ from .helper import assert_image_equal, hopper, is_pypy
TEST_FILE = "Tests/images/hopper.spider"
def teardown_module() -> None:
del Image.EXTENSION[".spider"]
def test_sanity() -> None:
with Image.open(TEST_FILE) as im:
im.load()

View File

@ -466,6 +466,9 @@ class TestImage:
# Assert
assert Image._initialized == 2
for extension in Image.EXTENSION:
assert extension in Image._EXTENSION_PLUGIN
def test_registered_extensions(self) -> None:
# Arrange
# Open an image to trigger plugin registration

View File

@ -290,9 +290,9 @@ def _save(im: Image.Image, fp: IO[bytes], filename: str | bytes) -> None:
def _save_spider(im: Image.Image, fp: IO[bytes], filename: str | bytes) -> None:
# get the filename extension and register it with Image
filename_ext = os.path.splitext(filename)[1]
ext = filename_ext.decode() if isinstance(filename_ext, bytes) else filename_ext
Image.register_extension(SpiderImageFile.format, ext)
if filename_ext := os.path.splitext(filename)[1]:
ext = filename_ext.decode() if isinstance(filename_ext, bytes) else filename_ext
Image.register_extension(SpiderImageFile.format, ext)
_save(im, fp, filename)