summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Shepelev <temotor@gmail.com>2016-12-22 02:41:32 +0300
committerSergey Shepelev <temotor@gmail.com>2016-12-22 02:41:32 +0300
commit3a8115c560e831a7f5442312529e18b41dc85b32 (patch)
treea6366f5bd1fbef8ec930bdce23e357b7d00f184e
parentf190122026463b28c587760c04b4d306ba61430e (diff)
downloadeventlet-3a8115c560e831a7f5442312529e18b41dc85b32.tar.gz
tests: patcher_import_patched_defaults was failing in presence of pyopenssl package
https://github.com/eventlet/eventlet/issues/362
-rw-r--r--tests/isolated/patcher_import_patched_defaults.py15
-rw-r--r--tests/patcher_test.py31
2 files changed, 27 insertions, 19 deletions
diff --git a/tests/isolated/patcher_import_patched_defaults.py b/tests/isolated/patcher_import_patched_defaults.py
new file mode 100644
index 0000000..62b0807
--- /dev/null
+++ b/tests/isolated/patcher_import_patched_defaults.py
@@ -0,0 +1,15 @@
+import os
+__test__ = False
+
+
+if os.environ.get('eventlet_test_import_patched_defaults') == '1':
+ try:
+ import urllib.request as target
+ except ImportError:
+ import urllib as target
+ t = target.socket.socket
+ import eventlet.green.socket
+ if issubclass(t, eventlet.green.socket.socket):
+ print('pass')
+ else:
+ print('Fail. Target socket not green: {0} bases {1}'.format(t, t.__bases__))
diff --git a/tests/patcher_test.py b/tests/patcher_test.py
index fb9c19b..933644f 100644
--- a/tests/patcher_test.py
+++ b/tests/patcher_test.py
@@ -82,26 +82,19 @@ class ImportPatched(ProcessBase):
assert 'eventlet.green.urllib' in lines[2], repr(output)
assert 'eventlet.green.httplib' not in lines[2], repr(output)
- def test_import_patched_defaults(self):
- self.write_to_tempfile("base", """
-import socket
-try:
- import urllib.request as urllib
-except ImportError:
- import urllib
-print("base {0} {1}".format(socket, urllib))""")
- new_mod = """
-from eventlet import patcher
-base = patcher.import_patched('base')
-print("newmod {0} {1} {2}".format(base, base.socket, base.urllib.socket.socket))
-"""
- self.write_to_tempfile("newmod", new_mod)
- output, lines = self.launch_subprocess('newmod.py')
- assert lines[0].startswith('base'), repr(output)
- assert lines[1].startswith('newmod'), repr(output)
- assert 'eventlet.green.socket' in lines[1], repr(output)
- assert 'GreenSocket' in lines[1], repr(output)
+def test_import_patched_defaults():
+ code = '''\
+import eventlet
+eventlet.import_patched('patcher_import_patched_defaults')
+'''
+ isolated_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + '/tests/isolated'
+ env = {
+ 'eventlet_test_import_patched_defaults': '1',
+ 'PYTHONPATH': os.pathsep.join(sys.path + [isolated_path]),
+ }
+ output = tests.run_python(path=None, env=env, args=['-c', code])
+ assert output.rstrip() == b'pass', repr(output)
class MonkeyPatch(ProcessBase):