Fixed #33079 -- Fixed get_image_dimensions() on nonexistent images.

Thanks Nick Pope for the review.
This commit is contained in:
Stefanos I. Tsaklidis 2021-05-24 18:10:00 +03:00 committed by Mariusz Felisiak
parent c1d50b901b
commit d0ea01af28
2 changed files with 8 additions and 1 deletions

View File

@ -44,7 +44,10 @@ def get_image_dimensions(file_or_path, close=False):
file_pos = file.tell()
file.seek(0)
else:
try:
file = open(file_or_path, 'rb')
except OSError:
return (None, None)
close = True
try:
# Most of the time Pillow only needs a small chunk to parse the image

View File

@ -369,6 +369,10 @@ class GetImageDimensionsTests(unittest.TestCase):
size = images.get_image_dimensions(fh)
self.assertEqual(size, (None, None))
def test_missing_file(self):
size = images.get_image_dimensions('missing.png')
self.assertEqual(size, (None, None))
@unittest.skipUnless(HAS_WEBP, 'WEBP not installed')
def test_webp(self):
img_path = os.path.join(os.path.dirname(__file__), 'test.webp')