Skip to content

Commit 7f38f98

Browse files
authored
Check that _EXTENSION_PLUGIN contains all registered extensions (#143)
2 parents 6b9de40 + b06118c commit 7f38f98

3 files changed

Lines changed: 10 additions & 3 deletions

File tree

Tests/test_file_spider.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
TEST_FILE = "Tests/images/hopper.spider"
1515

1616

17+
def teardown_module() -> None:
18+
del Image.EXTENSION[".spider"]
19+
20+
1721
def test_sanity() -> None:
1822
with Image.open(TEST_FILE) as im:
1923
im.load()

Tests/test_image.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -466,6 +466,9 @@ def test_registered_extensions_uninitialized(self) -> None:
466466
# Assert
467467
assert Image._initialized == 2
468468

469+
for extension in Image.EXTENSION:
470+
assert extension in Image._EXTENSION_PLUGIN
471+
469472
def test_registered_extensions(self) -> None:
470473
# Arrange
471474
# Open an image to trigger plugin registration

src/PIL/SpiderImagePlugin.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,9 +290,9 @@ def _save(im: Image.Image, fp: IO[bytes], filename: str | bytes) -> None:
290290

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

298298

0 commit comments

Comments
 (0)