mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-02-26 00:30:33 +03:00
Merge pull request #2525 from joshblum/fix-unboundlocalerror
Raise TypeError and not also UnboundLocalError in ImageFile.Parser()
This commit is contained in:
commit
3bd86b9f51
|
@ -380,11 +380,8 @@ class Parser(object):
|
|||
|
||||
# attempt to open this file
|
||||
try:
|
||||
try:
|
||||
fp = io.BytesIO(self.data)
|
||||
with io.BytesIO(self.data) as fp:
|
||||
im = Image.open(fp)
|
||||
finally:
|
||||
fp.close() # explicitly close the virtual file
|
||||
except IOError:
|
||||
# traceback.print_exc()
|
||||
pass # not enough data
|
||||
|
@ -432,12 +429,11 @@ class Parser(object):
|
|||
if self.data:
|
||||
# incremental parsing not possible; reopen the file
|
||||
# not that we have all data
|
||||
try:
|
||||
fp = io.BytesIO(self.data)
|
||||
self.image = Image.open(fp)
|
||||
finally:
|
||||
self.image.load()
|
||||
fp.close() # explicitly close the virtual file
|
||||
with io.BytesIO(self.data) as fp:
|
||||
try:
|
||||
self.image = Image.open(fp)
|
||||
finally:
|
||||
self.image.load()
|
||||
return self.image
|
||||
|
||||
|
||||
|
|
|
@ -95,6 +95,11 @@ class TestImageFile(PillowTestCase):
|
|||
def test_raise_ioerror(self):
|
||||
self.assertRaises(IOError, lambda: ImageFile.raise_ioerror(1))
|
||||
|
||||
def test_raise_typeerror(self):
|
||||
with self.assertRaises(TypeError):
|
||||
parser = ImageFile.Parser()
|
||||
parser.feed(1)
|
||||
|
||||
def test_truncated_with_errors(self):
|
||||
if "zip_encoder" not in codecs:
|
||||
self.skipTest("PNG (zlib) encoder not available")
|
||||
|
|
Loading…
Reference in New Issue
Block a user