Merged revisions 76453 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ................ r76453 | lars.gustaebel | 2009-11-23 16:48:33 +0100 (Mon, 23 Nov 2009) | 10 lines 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
4c3805958f
commit
45711a7237
|
@ -263,6 +263,24 @@ class MiscReadTest(ReadTest):
|
|||
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 invalid file raises a ReadError.
|
||||
invalid = os.path.join(TEMPDIR, "invalid")
|
||||
open(invalid, "wb").write(b"foo")
|
||||
|
||||
try:
|
||||
tar = object.__new__(tarfile.TarFile)
|
||||
try:
|
||||
tar.__init__(invalid)
|
||||
except tarfile.ReadError:
|
||||
self.assertTrue(tar.fileobj.closed)
|
||||
else:
|
||||
self.fail("ReadError not raised")
|
||||
finally:
|
||||
os.remove(invalid)
|
||||
|
||||
|
||||
class StreamReadTest(ReadTest):
|
||||
|
||||
|
|
Loading…
Reference in New Issue