diff options
author | Jeremy Hylton <jeremy@alum.mit.edu> | 2009-03-26 21:34:20 (GMT) |
---|---|---|
committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2009-03-26 21:34:20 (GMT) |
commit | b476d597921ab0ef52de1f56a5efa71c65727114 (patch) | |
tree | a0f034a37e0ff67de478dc52bdeaa34c887da943 /Lib/urllib/response.py | |
parent | 81fac4391893ed281737283f4368c90f2c022bf1 (diff) | |
download | cpython-b476d597921ab0ef52de1f56a5efa71c65727114.zip cpython-b476d597921ab0ef52de1f56a5efa71c65727114.tar.gz cpython-b476d597921ab0ef52de1f56a5efa71c65727114.tar.bz2 |
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
Diffstat (limited to 'Lib/urllib/response.py')
-rw-r--r-- | Lib/urllib/response.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Lib/urllib/response.py b/Lib/urllib/response.py index 52eeed0..9859642 100644 --- a/Lib/urllib/response.py +++ b/Lib/urllib/response.py @@ -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.""" |