tests: patcher_import_patched_defaults was failing in presence of pyopenssl package
https://github.com/eventlet/eventlet/issues/362
This commit is contained in:
15
tests/isolated/patcher_import_patched_defaults.py
Normal file
15
tests/isolated/patcher_import_patched_defaults.py
Normal 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__))
|
@@ -82,26 +82,19 @@ class ImportPatched(ProcessBase):
|
|||||||
assert 'eventlet.green.urllib' in lines[2], repr(output)
|
assert 'eventlet.green.urllib' in lines[2], repr(output)
|
||||||
assert 'eventlet.green.httplib' not 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 = """
|
def test_import_patched_defaults():
|
||||||
from eventlet import patcher
|
code = '''\
|
||||||
base = patcher.import_patched('base')
|
import eventlet
|
||||||
print("newmod {0} {1} {2}".format(base, base.socket, base.urllib.socket.socket))
|
eventlet.import_patched('patcher_import_patched_defaults')
|
||||||
"""
|
'''
|
||||||
self.write_to_tempfile("newmod", new_mod)
|
isolated_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + '/tests/isolated'
|
||||||
output, lines = self.launch_subprocess('newmod.py')
|
env = {
|
||||||
assert lines[0].startswith('base'), repr(output)
|
'eventlet_test_import_patched_defaults': '1',
|
||||||
assert lines[1].startswith('newmod'), repr(output)
|
'PYTHONPATH': os.pathsep.join(sys.path + [isolated_path]),
|
||||||
assert 'eventlet.green.socket' in lines[1], repr(output)
|
}
|
||||||
assert 'GreenSocket' in lines[1], repr(output)
|
output = tests.run_python(path=None, env=env, args=['-c', code])
|
||||||
|
assert output.rstrip() == b'pass', repr(output)
|
||||||
|
|
||||||
|
|
||||||
class MonkeyPatch(ProcessBase):
|
class MonkeyPatch(ProcessBase):
|
||||||
|
Reference in New Issue
Block a user