summaryrefslogtreecommitdiffstats
path: root/Lib/urllib
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2009-03-26 21:34:20 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2009-03-26 21:34:20 (GMT)
commitb476d597921ab0ef52de1f56a5efa71c65727114 (patch)
treea0f034a37e0ff67de478dc52bdeaa34c887da943 /Lib/urllib
parent81fac4391893ed281737283f4368c90f2c022bf1 (diff)
downloadcpython-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')
-rw-r--r--Lib/urllib/response.py8
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."""