mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-31 16:07:30 +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