mirror of
https://github.com/python/cpython.git
synced 2025-07-29 14:15:07 +00:00
Add a testcase that checks if the TarFile constructor successfully
closes the internal file object in case of an error (issue #7341).
This commit is contained in:
parent
dd866d57af
commit
12adc655c8
1 changed files with 18 additions and 0 deletions
|
@ -310,6 +310,24 @@ class MiscReadTest(CommonReadTest):
|
|||
self.assertEqual(tarinfo.mtime, os.path.getmtime(path))
|
||||
tar.close()
|
||||
|
||||
def test_init_close_fobj(self):
|
||||
# Issue #7341: Close the internal file object in the TarFile
|
||||
# constructor in case of an error. For the test we rely on
|
||||
# the fact that opening an empty file raises a ReadError.
|
||||
empty = os.path.join(TEMPDIR, "empty")
|
||||
open(empty, "wb").write("")
|
||||
|
||||
try:
|
||||
tar = object.__new__(tarfile.TarFile)
|
||||
try:
|
||||
tar.__init__(empty)
|
||||
except tarfile.ReadError:
|
||||
self.assertTrue(tar.fileobj.closed)
|
||||
else:
|
||||
self.fail("ReadError not raised")
|
||||
finally:
|
||||
os.remove(empty)
|
||||
|
||||
|
||||
class StreamReadTest(CommonReadTest):
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue