Try to fix test_tarfile issues on Windows buildbots by closing file

objects explicitly instead of letting them linger on.
This commit is contained in:
Antoine Pitrou 2010-09-23 18:36:46 +00:00
parent e5768cf348
commit 95f5560b46
2 changed files with 388 additions and 293 deletions

View file

@ -1764,14 +1764,19 @@ def gzopen(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs):
if fileobj is None:
fileobj = bltn_open(name, mode + "b")
extfileobj = False
else:
extfileobj = True
try:
t = cls.taropen(name, mode,
gzip.GzipFile(name, mode, compresslevel, fileobj),
**kwargs)
except IOError:
if not extfileobj:
fileobj.close()
raise ReadError("not a gzip file")
t._extfileobj = False
t._extfileobj = extfileobj
return t
@classmethod
@ -1795,6 +1800,7 @@ def bz2open(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs):
try:
t = cls.taropen(name, mode, fileobj, **kwargs)
except (IOError, EOFError):
fileobj.close()
raise ReadError("not a bzip2 file")
t._extfileobj = False
return t

File diff suppressed because it is too large Load diff