Fixed #24441 -- Changed get_image_dimensions() return value for broken images

This commit is contained in:
Raúl Cumplido 2015-03-22 13:46:38 +00:00 committed by Tim Graham
parent cb506aed2a
commit cda74c7fc9
3 changed files with 18 additions and 1 deletions

View File

@ -66,7 +66,7 @@ def get_image_dimensions(file_or_path, close=False):
if p.image:
return p.image.size
chunk_size *= 2
return None
return (None, None)
finally:
if close:
file.close()

View File

@ -0,0 +1 @@
123

View File

@ -239,6 +239,22 @@ class InconsistentGetImageDimensionsBug(unittest.TestCase):
self.assertEqual(size, Image.open(fh).size)
class GetImageDimensionsOnInvalidImages(unittest.TestCase):
@unittest.skipUnless(Image, "Pillow not installed")
def test_invalid_image(self):
"""
get_image_dimensions() should return (None, None) for the dimensions of
invalid images (#24441).
brokenimg.png is not a valid image and it has been generated by:
$ echo "123" > brokenimg.png
"""
img_path = os.path.join(os.path.dirname(upath(__file__)), "brokenimg.png")
with open(img_path, 'rb') as fh:
size = images.get_image_dimensions(fh)
self.assertEqual(size, (None, None))
class FileMoveSafeTests(unittest.TestCase):
def test_file_move_overwrite(self):
handle_a, self.file_a = tempfile.mkstemp()