[Checkins] SVN: zc.buildoutsftp/trunk/src/zc/buildoutsftp/ Updated to work with the new setuptools, which *also* has it's way with urllib2
jim
cvs-admin at zope.org
Thu Aug 1 20:31:07 CEST 2013
Log message for revision 130285:
Updated to work with the new setuptools, which *also* has it's way with urllib2
Changed:
U zc.buildoutsftp/trunk/src/zc/buildoutsftp/__init__.py
U zc.buildoutsftp/trunk/src/zc/buildoutsftp/main.test
U zc.buildoutsftp/trunk/src/zc/buildoutsftp/tests.py
-=-
Modified: zc.buildoutsftp/trunk/src/zc/buildoutsftp/__init__.py
===================================================================
--- zc.buildoutsftp/trunk/src/zc/buildoutsftp/__init__.py 2013-08-01 09:50:37 UTC (rev 130284)
+++ zc.buildoutsftp/trunk/src/zc/buildoutsftp/__init__.py 2013-08-01 18:31:06 UTC (rev 130285)
@@ -23,16 +23,25 @@
import stat
import sys
import urllib
-import urllib2
+try:
+ from setuptools.compat import urllib2
+except ImportError:
+ # Older setuptools/distribute
+ import urllib2
+
+original_build_opener = urllib2.build_opener
+
logger = logging.getLogger(__name__)
def install(buildout=None):
- urllib2.install_opener(urllib2.build_opener(SFTPHandler))
+ urllib2.build_opener = lambda *a: original_build_opener(SFTPHandler, *a)
+ urllib2.install_opener(urllib2.build_opener())
logging.getLogger('paramiko').setLevel(logger.getEffectiveLevel()+10)
def unload(buildout=None):
- # no uninstall_opener. Screw it. :)
+ urllib2.build_opener = original_build_opener
+ urllib2.install_opener(urllib2.build_opener())
cleanup()
parse_url_host = re.compile(
Modified: zc.buildoutsftp/trunk/src/zc/buildoutsftp/main.test
===================================================================
--- zc.buildoutsftp/trunk/src/zc/buildoutsftp/main.test 2013-08-01 09:50:37 UTC (rev 130284)
+++ zc.buildoutsftp/trunk/src/zc/buildoutsftp/main.test 2013-08-01 18:31:06 UTC (rev 130285)
@@ -7,11 +7,10 @@
The buildoutsftp extension installs an sftp handler in urllib2.
- >>> import zc.buildoutsftp, urllib2
+ >>> import zc.buildoutsftp
+ >>> from zc.buildoutsftp import urllib2
>>> zc.buildoutsftp.install(None)
- >>> urllib2.build_opener.assert_called_with(zc.buildoutsftp.SFTPHandler)
- >>> urllib2.install_opener.assert_called_with(
- ... urllib2.build_opener.return_value)
+ >>> build_opener.assert_called_with(zc.buildoutsftp.SFTPHandler)
A buildout object is passed to install, but install ignores it.
Modified: zc.buildoutsftp/trunk/src/zc/buildoutsftp/tests.py
===================================================================
--- zc.buildoutsftp/trunk/src/zc/buildoutsftp/tests.py 2013-08-01 09:50:37 UTC (rev 130284)
+++ zc.buildoutsftp/trunk/src/zc/buildoutsftp/tests.py 2013-08-01 18:31:06 UTC (rev 130285)
@@ -35,9 +35,11 @@
mimetypes.init()
setupstack.setUpDirectory(test)
- setupstack.context_manager(test, mock.patch('urllib2.install_opener'))
- setupstack.context_manager(test, mock.patch('urllib2.build_opener'))
setupstack.context_manager(
+ test, mock.patch('zc.buildoutsftp.urllib2.install_opener'))
+ test.globs['build_opener'] = setupstack.context_manager(
+ test, mock.patch('zc.buildoutsftp.original_build_opener'))
+ setupstack.context_manager(
test, mock.patch.dict(os.environ, values=dict(HOME=os.getcwd())))
original_exists = os.path.exists
More information about the checkins
mailing list