Merge pull request #3461 from radarhere/exclusive_fp

Close exclusive fp before discarding
This commit is contained in:
Hugo 2018-12-13 21:07:32 +02:00 committed by GitHub
commit 857b077f5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 12 additions and 2 deletions

View File

@ -26,6 +26,7 @@ class TestFileCur(PillowTestCase):
no_cursors_file = "Tests/images/no_cursors.cur"
cur = CurImagePlugin.CurImageFile(TEST_FILE)
cur.fp.close()
with open(no_cursors_file, "rb") as cur.fp:
self.assertRaises(TypeError, cur._open)

View File

@ -17,7 +17,10 @@ class TestFileIcns(PillowTestCase):
# Loading this icon by default should result in the largest size
# (512x512@2x) being loaded
im = Image.open(TEST_FILE)
im.load()
# Assert that there is no unclosed file warning
self.assert_warning(None, im.load)
self.assertEqual(im.mode, "RGBA")
self.assertEqual(im.size, (1024, 1024))
self.assertEqual(im.format, "ICNS")

View File

@ -327,7 +327,9 @@ class TestFilePng(PillowTestCase):
# Check open/load/verify exception (@PIL150)
im = Image.open(TEST_PNG_FILE)
im.verify()
# Assert that there is no unclosed file warning
self.assert_warning(None, im.verify)
im = Image.open(TEST_PNG_FILE)
im.load()

View File

@ -311,6 +311,8 @@ class IcnsImageFile(ImageFile.ImageFile):
self.im = im.im
self.mode = im.mode
self.size = im.size
if self._exclusive_fp:
self.fp.close()
self.fp = None
self.icns = None
self.tile = ()

View File

@ -600,6 +600,8 @@ class PngImageFile(ImageFile.ImageFile):
self.png.verify()
self.png.close()
if self._exclusive_fp:
self.fp.close()
self.fp = None
def load_prepare(self):