diff options
author | Lars Gustäbel <lars@gustaebel.de> | 2007-04-20 20:10:59 +0000 |
---|---|---|
committer | Lars Gustäbel <lars@gustaebel.de> | 2007-04-20 20:10:59 +0000 |
commit | 9319e43c675920fa69d1461bf9c6bb451647ae4d (patch) | |
tree | 497e0e1d16ebab23c70d2eb35a1989f67bfb0e7f | |
parent | d220144a84b71d4d6a35d68b091a45780c5e5162 (diff) | |
download | cpython-git-9319e43c675920fa69d1461bf9c6bb451647ae4d.tar.gz |
Patch #1695229: Fix a regression with tarfile.open() and a missing name
argument.
-rw-r--r-- | Lib/tarfile.py | 4 | ||||
-rw-r--r-- | Lib/test/test_tarfile.py | 10 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
3 files changed, 14 insertions, 3 deletions
diff --git a/Lib/tarfile.py b/Lib/tarfile.py index 261d9fbc36..474e306e4c 100644 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -1044,7 +1044,9 @@ class TarFile(object): can be determined, `mode' is overridden by `fileobj's mode. `fileobj' is not closed, when TarFile is closed. """ - self.name = os.path.abspath(name) + self.name = name + if self.name is not None: + self.name = os.path.abspath(name) if len(mode) > 1 or mode not in "raw": raise ValueError("mode must be 'r', 'a' or 'w'") diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index b1cbcf69c3..dc262f656d 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -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): @@ -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. |