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:
Lars Gustäbel 2009-11-23 16:01:56 +00:00
parent 07361c19a7
commit 55fa13cb69
1 changed files with 18 additions and 0 deletions

View File

@ -264,6 +264,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("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):