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
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 @@
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."""