tests: patcher_import_patched_defaults was failing in presence of pyopenssl package

https://github.com/eventlet/eventlet/issues/362
This commit is contained in:
Sergey Shepelev 2016-12-22 02:41:32 +03:00
parent f190122026
commit 3a8115c560
2 changed files with 27 additions and 19 deletions

View File

@ -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__))

View File

@ -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):