mirror of https://github.com/python/cpython
Merged revisions 76452 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r76452 | lars.gustaebel | 2009-11-23 16:46:19 +0100 (Mon, 23 Nov 2009) | 3 lines 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
7c5714f78c
commit
b7f09238d8
|
@ -309,6 +309,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(b"")
|
||||
|
||||
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…
Reference in New Issue