Add __enter__ and __exit__ methods to addbase() so that it supports with.

This change also adds a minimal unittest of urllib.response.addbase.
More are needed, but not to cover the small change being made here.

Addresses http://bugs.python.org/issue5418
This commit is contained in:
Jeremy Hylton 2009-03-26 21:34:20 +00:00
parent 81fac43918
commit b476d59792
2 changed files with 50 additions and 0 deletions

View file

@ -40,6 +40,14 @@ class addbase(object):
if self.fp: self.fp.close()
self.fp = None
def __enter__(self):
if self.fp is None:
raise ValueError("I/O operation on closed file")
return self
def __exit__(self, type, value, traceback):
self.close()
class addclosehook(addbase):
"""Class to add a close hook to an open file."""