diff --git a/Tests/test_file_spider.py b/Tests/test_file_spider.py index 3b3c3b4a5..03494523b 100644 --- a/Tests/test_file_spider.py +++ b/Tests/test_file_spider.py @@ -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() diff --git a/Tests/test_image.py b/Tests/test_image.py index afc6e8e16..c064939e8 100644 --- a/Tests/test_image.py +++ b/Tests/test_image.py @@ -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 diff --git a/src/PIL/SpiderImagePlugin.py b/src/PIL/SpiderImagePlugin.py index 866292243..848dccda5 100644 --- a/src/PIL/SpiderImagePlugin.py +++ b/src/PIL/SpiderImagePlugin.py @@ -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)