From cda74c7fc99abe1848e1f4965070108dd2ae378a Mon Sep 17 00:00:00 2001 From: Raúl Cumplido Date: Sun, 22 Mar 2015 13:46:38 +0000 Subject: Fixed #24441 -- Changed get_image_dimensions() return value for broken images --- tests/files/brokenimg.png | 1 + tests/files/tests.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 tests/files/brokenimg.png (limited to 'tests') diff --git a/tests/files/brokenimg.png b/tests/files/brokenimg.png new file mode 100644 index 0000000000..190a18037c --- /dev/null +++ b/tests/files/brokenimg.png @@ -0,0 +1 @@ +123 diff --git a/tests/files/tests.py b/tests/files/tests.py index 2401f26c8f..d5d952d1e0 100644 --- a/tests/files/tests.py +++ b/tests/files/tests.py @@ -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() -- cgit v1.3