Patch #1695229: Fix a regression with tarfile.open() and a missing name

argument.
This commit is contained in:
Lars Gustäbel 2007-04-20 20:10:59 +00:00
parent d220144a84
commit 9319e43c67
3 changed files with 14 additions and 3 deletions

View File

@ -1044,6 +1044,8 @@ class TarFile(object):
can be determined, `mode' is overridden by `fileobj's mode.
`fileobj' is not closed, when TarFile is closed.
"""
self.name = name
if self.name is not None:
self.name = os.path.abspath(name)
if len(mode) > 1 or mode not in "raw":

View File

@ -633,15 +633,21 @@ class FileModeTest(unittest.TestCase):
self.assertEqual(tarfile.filemode(07111), '---s--s--t')
class OpenFileobjTest(BaseTest):
# Test for SF bug #1496501.
def test_opener(self):
# Test for SF bug #1496501.
fobj = StringIO.StringIO("foo\n")
try:
tarfile.open("", "r", fileobj=fobj)
tarfile.open("", mode="r", fileobj=fobj)
except tarfile.ReadError:
self.assertEqual(fobj.tell(), 0, "fileobj's position has moved")
def test_fileobj(self):
# Test for SF bug #1695229, opening a tarfile without
# a name argument.
tarfile.open(mode="r", fileobj=open(tarname("")))
tarfile.TarFile(mode="r", fileobj=open(tarname("")))
if bz2:
# Bzip2 TestCases
class ReadTestBzip2(ReadTestGzip):

View File

@ -12,6 +12,9 @@ What's New in Python 2.5.2c1?
Library
-------
- Patch #1695229: Fix a regression with tarfile.open() and a missing name
argument.
- tarfile.py: Fix directory names to have only one trailing slash.