Python 3 compat: Fix patcher and hub tests
This commit is contained in:
@@ -223,8 +223,19 @@ def monkey_patch(**on):
|
||||
It's safe to call monkey_patch multiple times.
|
||||
"""
|
||||
accepted_args = set(('os', 'select', 'socket',
|
||||
'thread', 'time', 'psycopg', 'MySQLdb', '__builtin__'))
|
||||
'thread', 'time', 'psycopg', 'MySQLdb',
|
||||
'builtins'))
|
||||
# To make sure only one of them is passed here
|
||||
assert not ('__builtin__' in on and 'builtins' in on)
|
||||
try:
|
||||
b = on.pop('__builtin__')
|
||||
except KeyError:
|
||||
pass
|
||||
else:
|
||||
on['builtins'] = b
|
||||
|
||||
default_on = on.pop("all", None)
|
||||
|
||||
for k in six.iterkeys(on):
|
||||
if k not in accepted_args:
|
||||
raise TypeError("monkey_patch() got an unexpected "
|
||||
@@ -235,7 +246,7 @@ def monkey_patch(**on):
|
||||
if modname == 'MySQLdb':
|
||||
# MySQLdb is only on when explicitly patched for the moment
|
||||
on.setdefault(modname, False)
|
||||
if modname == '__builtin__':
|
||||
if modname == 'builtins':
|
||||
on.setdefault(modname, False)
|
||||
on.setdefault(modname, default_on)
|
||||
|
||||
@@ -258,9 +269,9 @@ def monkey_patch(**on):
|
||||
if on.get('MySQLdb') and not already_patched.get('MySQLdb'):
|
||||
modules_to_patch += _green_MySQLdb()
|
||||
already_patched['MySQLdb'] = True
|
||||
if on.get('__builtin__') and not already_patched.get('__builtin__'):
|
||||
if on.get('builtins') and not already_patched.get('builtins'):
|
||||
modules_to_patch += _green_builtins()
|
||||
already_patched['__builtin__'] = True
|
||||
already_patched['builtins'] = True
|
||||
if on['psycopg'] and not already_patched.get('psycopg'):
|
||||
try:
|
||||
from eventlet.support import psycopg2_patcher
|
||||
@@ -351,7 +362,7 @@ def _green_MySQLdb():
|
||||
def _green_builtins():
|
||||
try:
|
||||
from eventlet.green import builtin
|
||||
return [('__builtin__', builtin)]
|
||||
return [('__builtin__' if six.PY2 else 'builtins', builtin)]
|
||||
except ImportError:
|
||||
return []
|
||||
|
||||
|
||||
@@ -298,7 +298,7 @@ class TestFork(LimitedTestCase):
|
||||
def test_fork(self):
|
||||
output = tests.run_python('tests/hub_test_fork.py')
|
||||
lines = output.splitlines()
|
||||
self.assertEqual(lines, ["accept blocked", "child died ok"], output)
|
||||
self.assertEqual(lines, [b"accept blocked", b"child died ok"], output)
|
||||
|
||||
|
||||
class TestDeadRunLoop(LimitedTestCase):
|
||||
@@ -376,8 +376,9 @@ try:
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
import __builtin__
|
||||
original_import = __builtin__.__import__
|
||||
from eventlet.support.six.moves import builtins
|
||||
|
||||
original_import = builtins.__import__
|
||||
|
||||
def fail_import(name, *args, **kwargs):
|
||||
if 'epoll' in name:
|
||||
@@ -386,7 +387,7 @@ def fail_import(name, *args, **kwargs):
|
||||
print('kqueue tried')
|
||||
return original_import(name, *args, **kwargs)
|
||||
|
||||
__builtin__.__import__ = fail_import
|
||||
builtins.__import__ = fail_import
|
||||
|
||||
|
||||
import eventlet.hubs
|
||||
|
||||
Reference in New Issue
Block a user