def patch_smtp(): #FIXME: This code have some bug caused by the nonblocking I/O. # At this moment this patcher isn't used by the crawler. It just # import the regular smtplib module from eventlet import patcher from eventlet.green import socket from eventlet.green import ssl from eventlet.green import time smtplib = patcher.inject('smtplib', globals(), ('socket', socket), ('ssl', ssl), ('time', time)) del patcher
from eventlet import patcher from eventlet.green import asyncore from eventlet.green import select from eventlet.green import socket from eventlet.green import threading from eventlet.green import time patcher.inject("test.test_asyncore", globals(), ('asyncore', asyncore), ('select', select), ('socket', socket), ('threading', threading), ('time', time)) def new_closeall_check(self, usedefault): # Check that close_all() closes everything in a given map l = [] testmap = {} for i in range(10): c = dummychannel() l.append(c) self.assertEqual(c.socket.closed, False) testmap[i] = c if usedefault: # the only change we make is to not assign to asyncore.socket_map # because doing so fails to assign to the real asyncore's socket_map # and thus the test fails socketmap = asyncore.socket_map.copy() try: asyncore.socket_map.clear() asyncore.socket_map.update(testmap)
from eventlet import patcher from eventlet.green import socket from eventlet.green import time patcher.inject('test.test_timeout', globals(), ('socket', socket), ('time', time)) # to get past the silly 'requires' check from test import test_support test_support.use_resources = ['network'] if __name__ == "__main__": test_main()
from eventlet import patcher from eventlet.green import ftplib from eventlet.green import httplib from eventlet.green import socket from eventlet.green import time from eventlet.green import urllib patcher.inject('urllib2', globals(), ('httplib', httplib), ('socket', socket), ('time', time), ('urllib', urllib)) FTPHandler.ftp_open = patcher.patch_function(FTPHandler.ftp_open, ('ftplib', ftplib)) del patcher
from eventlet import patcher from eventlet.green import BaseHTTPServer from eventlet.green import threading from eventlet.green import socket from eventlet.green import urllib2 patcher.inject('test.test_urllib2_localnet', globals(), ('BaseHTTPServer', BaseHTTPServer), ('threading', threading), ('socket', socket), ('urllib2', urllib2)) if __name__ == "__main__": test_main()
from eventlet import patcher patcher.inject("urllib.response", globals()) del patcher
from types import FunctionType import eventlet from eventlet import greenio from eventlet import patcher from eventlet.green import select, threading, time from eventlet.support import six to_patch = [('select', select), ('threading', threading), ('time', time)] if sys.version_info > (3, 4): from eventlet.green import selectors to_patch.append(('selectors', selectors)) patcher.inject('subprocess', globals(), *to_patch) subprocess_orig = __import__("subprocess") mswindows = sys.platform == "win32" if getattr(subprocess_orig, 'TimeoutExpired', None) is None: # Backported from Python 3.3. # https://bitbucket.org/eventlet/eventlet/issue/89 class TimeoutExpired(Exception): """This exception is raised when the timeout expires while waiting for a child process. """ def __init__(self, cmd, timeout, output=None): self.cmd = cmd self.timeout = timeout
from eventlet import patcher from eventlet.green import thread from eventlet.green import time __patched__ = ['_start_new_thread', '_allocate_lock', '_get_ident', '_sleep', 'local', 'stack_size'] patcher.inject('threading', globals(), ('thread', thread), ('time', time)) del patcher def _patch_main_thread(mod): # this is some gnarly patching for the threading module; # if threading is imported before we patch (it nearly always is), # then the main thread will have the wrong key in therading._active, # so, we try and replace that key with the correct one here # this works best if there are no other threads besides the main one curthread = mod._active.pop(mod._get_ident(), None) if curthread: mod._active[thread.get_ident()] = curthread
from eventlet import patcher from eventlet.green import SocketServer from eventlet.green import socket from eventlet.green import select from eventlet.green import time from eventlet.green import threading # to get past the silly 'requires' check from test import test_support test_support.use_resources = ['network'] patcher.inject( 'test.test_socketserver', globals(), ('SocketServer', SocketServer), ('socket', socket), ('select', select), ('time', time), ('threading', threading)) # only a problem with pyevent from eventlet import tests if tests.using_pyevent(): try: SocketServerTest.test_ForkingUDPServer = lambda *a, **kw: None SocketServerTest.test_ForkingTCPServer = lambda *a, **kw: None SocketServerTest.test_ForkingUnixStreamServer = lambda *a, **kw: None except (NameError, AttributeError): pass if __name__ == "__main__":
from eventlet import patcher from eventlet.green import socket from eventlet.green import time from eventlet.green import asyncore from eventlet.green import asynchat patcher.inject( "smtpd", globals(), ('socket', socket), ('asyncore', asyncore), ('asynchat', asynchat), ('time', time)) del patcher
from eventlet import patcher from eventlet.green import socket to_patch = [('socket', socket)] try: from eventlet.green import ssl to_patch.append(('ssl', ssl)) except ImportError: pass patcher.inject('httplib', globals(), *to_patch) if __name__ == '__main__': test()
#!/usr/bin/env python from eventlet import patcher from eventlet.green import SocketServer from eventlet.green import socket from eventlet.green import select from eventlet.green import time from eventlet.green import threading # to get past the silly 'requires' check from test import test_support test_support.use_resources = ['network'] patcher.inject('test.test_socketserver', globals(), ('SocketServer', SocketServer), ('socket', socket), ('select', select), ('time', time), ('threading', threading)) # only a problem with pyevent from eventlet import tests if tests.using_pyevent(): try: SocketServerTest.test_ForkingUDPServer = lambda *a, **kw: None SocketServerTest.test_ForkingTCPServer = lambda *a, **kw: None SocketServerTest.test_ForkingUnixStreamServer = lambda *a, **kw: None except (NameError, AttributeError): pass if __name__ == "__main__": test_main()
from eventlet import patcher from eventlet.green import httplib from eventlet.green import socket patcher.inject('test.test_httplib', globals(), ('httplib', httplib), ('socket', socket)) if __name__ == "__main__": test_main()
from eventlet import patcher from eventlet.green import os patcher.inject('test.test_os', globals(), ('os', os)) if __name__ == "__main__": test_main()
from eventlet import patcher from eventlet.green import socket from eventlet.green import SocketServer patcher.inject('BaseHTTPServer', globals(), ('socket', socket), ('SocketServer', SocketServer)) del patcher if __name__ == '__main__': test()
from eventlet import patcher patcher.inject('urllib.parse', globals()) del patcher
import eventlet from eventlet import greenio from eventlet import patcher from eventlet.green import select, threading, time from eventlet.support import six __patched__ = ["call", "check_call", "Popen"] to_patch = [("select", select), ("threading", threading), ("time", time)] if sys.version_info > (3, 4): from eventlet.green import selectors to_patch.append(("selectors", selectors)) patcher.inject("subprocess", globals(), *to_patch) subprocess_orig = patcher.original("subprocess") mswindows = sys.platform == "win32" if getattr(subprocess_orig, "TimeoutExpired", None) is None: # Backported from Python 3.3. # https://bitbucket.org/eventlet/eventlet/issue/89 class TimeoutExpired(Exception): """This exception is raised when the timeout expires while waiting for a child process. """ def __init__(self, cmd, timeout, output=None): self.cmd = cmd self.timeout = timeout
from eventlet import patcher from eventlet.green import asyncore from eventlet.green import asynchat from eventlet.green import socket from eventlet.green import thread from eventlet.green import threading from eventlet.green import time patcher.inject("test.test_asynchat", globals(), ('asyncore', asyncore), ('asynchat', asynchat), ('socket', socket), ('thread', thread), ('threading', threading), ('time', time)) if __name__ == "__main__": test_main()
from eventlet import patcher from eventlet.green import asyncore from eventlet.green import ftplib from eventlet.green import threading from eventlet.green import socket patcher.inject( "test.test_ftplib", globals(), ("asyncore", asyncore), ("ftplib", ftplib), ("socket", socket), ("threading", threading), ) if __name__ == "__main__": test_main()
from eventlet import patcher from eventlet.green import socket from eventlet.green import select from eventlet.green import threading import six patcher.inject( 'SocketServer' if six.PY2 else 'socketserver', globals(), ('socket', socket), ('select', select), ('threading', threading)) # QQQ ForkingMixIn should be fixed to use green waitpid?
from eventlet import patcher from eventlet.green import os, time, select, socket, SocketServer, subprocess from eventlet.green.http import client from eventlet.green.urllib import parse as urllib_parse patcher.inject('http.server', globals(), ('http.client', client), ('os', os), ('select', select), ('socket', socket), ('socketserver', SocketServer), ('time', time), ('urllib.parse', urllib_parse)) CGIHTTPRequestHandler.run_cgi = patcher.patch_function( CGIHTTPRequestHandler.run_cgi, ('subprocess', subprocess)) del urllib_parse del client del patcher
from eventlet import patcher from eventlet.green import BaseHTTPServer from eventlet.green import SimpleHTTPServer from eventlet.green import CGIHTTPServer from eventlet.green import urllib from eventlet.green import httplib from eventlet.green import threading patcher.inject('test.test_httpservers', globals(), ('BaseHTTPServer', BaseHTTPServer), ('SimpleHTTPServer', SimpleHTTPServer), ('CGIHTTPServer', CGIHTTPServer), ('urllib', urllib), ('httplib', httplib), ('threading', threading)) if __name__ == "__main__": test_main()
#!/usr/bin/env python from eventlet import patcher from eventlet.green import socket from eventlet.green import select from eventlet.green import time from eventlet.green import thread from eventlet.green import threading patcher.inject( 'test.test_socket', globals(), ('socket', socket), ('select', select), ('time', time), ('thread', thread), ('threading', threading)) # TODO: fix TCPTimeoutTest.testInterruptedTimeout = lambda *a: None if __name__ == "__main__": test_main()
from eventlet import patcher from eventlet.green import httplib from eventlet.green import urllib patcher.inject('test.test_urllib', globals(), ('httplib', httplib), ('urllib', urllib)) if __name__ == "__main__": test_main()
from eventlet import patcher from eventlet.green import socket from eventlet.green import urllib2 patcher.inject('test.test_urllib2', globals(), ('socket', socket), ('urllib2', urllib2)) HandlerTests.test_file = patcher.patch_function(HandlerTests.test_file, ('socket', socket)) HandlerTests.test_cookie_redirect = patcher.patch_function(HandlerTests.test_cookie_redirect, ('urllib2', urllib2)) OpenerDirectorTests.test_badly_named_methods = patcher.patch_function(OpenerDirectorTests.test_badly_named_methods, ('urllib2', urllib2)) if __name__ == "__main__": test_main()
from eventlet import patcher from eventlet.green import thread from eventlet.green import time patcher.inject('test.test_thread', globals()) try: # this is a new test in 2.7 that we don't support yet TestForkInThread.test_forkinthread = lambda *a, **kw: None except NameError: pass if __name__ == "__main__": test_main()
from eventlet import patcher from eventlet.green import socket from eventlet.green import SocketServer import six patcher.inject( 'BaseHTTPServer' if six.PY2 else 'http.server', globals(), ('socket', socket), ('SocketServer', SocketServer), ('socketserver', SocketServer)) del patcher if __name__ == '__main__': test()
from eventlet import patcher from eventlet.green import asyncore from eventlet.green import socket patcher.inject( 'asynchat', globals(), ('asyncore', asyncore), ('socket', socket)) del patcher
from eventlet import patcher from eventlet.green.urllib import response patcher.inject('urllib.error', globals(), ('urllib.response', response)) del patcher
from eventlet import patcher from eventlet.green import socket from eventlet.green import select from eventlet.green import threading import six patcher.inject('SocketServer' if six.PY2 else 'socketserver', globals(), ('socket', socket), ('select', select), ('threading', threading)) # QQQ ForkingMixIn should be fixed to use green waitpid?
from eventlet import patcher # *NOTE: there might be some funny business with the "SOCKS" module # if it even still exists from eventlet.green import socket patcher.inject("ftplib", globals(), ("socket", socket)) del patcher # Run test program when run as a script if __name__ == "__main__": test()
import errno import new import time import eventlet from eventlet import greenio from eventlet import patcher from eventlet.green import os from eventlet.green import select patcher.inject('subprocess', globals(), ('select', select)) subprocess_orig = __import__("subprocess") if getattr(subprocess_orig, 'TimeoutExpired', None) is None: # Backported from Python 3.3. # https://bitbucket.org/eventlet/eventlet/issue/89 class TimeoutExpired(Exception): """This exception is raised when the timeout expires while waiting for a child process. """ def __init__(self, cmd, output=None): self.cmd = cmd self.output = output def __str__(self): return ("Command '%s' timed out after %s seconds" % (self.cmd, self.timeout)) # This is the meat of this module, the green version of Popen. class Popen(subprocess_orig.Popen):
from eventlet.green import threading, time from eventlet.green.http import client from eventlet.green.urllib import parse as urllib_parse, request as urllib_request from eventlet import patcher patcher.inject('http.cookiejar', globals(), ('http.client', client), ('threading', threading), ('urllib.parse', urllib_parse), ('urllib.request', urllib_request), ('time', time)) del urllib_request del urllib_parse del patcher
import errno import new import eventlet from eventlet import greenio from eventlet import patcher from eventlet.green import os from eventlet.green import select patcher.inject('subprocess', globals(), ('select', select)) subprocess_orig = __import__("subprocess") # This is the meat of this module, the green version of Popen. class Popen(subprocess_orig.Popen): """eventlet-friendly version of subprocess.Popen""" # We do not believe that Windows pipes support non-blocking I/O. At least, # the Python file objects stored on our base-class object have no # setblocking() method, and the Python fcntl module doesn't exist on # Windows. (see eventlet.greenio.set_nonblocking()) As the sole purpose of # this __init__() override is to wrap the pipes for eventlet-friendly # non-blocking I/O, don't even bother overriding it on Windows. if not subprocess_orig.mswindows: def __init__(self, args, bufsize=0, *argss, **kwds): # Forward the call to base-class constructor subprocess_orig.Popen.__init__(self, args, 0, *argss, **kwds) # Now wrap the pipes, if any. This logic is loosely borrowed from # eventlet.processes.Process.run() method. for attr in "stdin", "stdout", "stderr": pipe = getattr(self, attr) if pipe is not None: wrapped_pipe = greenio.GreenPipe(pipe, pipe.mode, bufsize)
from eventlet import patcher from eventlet.green import asyncore from eventlet.green import ftplib from eventlet.green import threading from eventlet.green import socket patcher.inject('test.test_ftplib', globals()) # this test only fails on python2.7/pyevent/--with-xunit; screw that try: TestTLS_FTPClass.test_data_connection = lambda *a, **kw: None except (AttributeError, NameError): pass if __name__ == "__main__": test_main()
from eventlet import patcher patcher.inject('urllib.response', globals()) del patcher
from types import FunctionType import eventlet from eventlet import greenio from eventlet import patcher from eventlet.green import select, threading, time from eventlet.support import six __patched__ = ['call', 'check_call', 'Popen'] to_patch = [('select', select), ('threading', threading), ('time', time)] if sys.version_info > (3, 4): from eventlet.green import selectors to_patch.append(('selectors', selectors)) patcher.inject('subprocess', globals(), *to_patch) subprocess_orig = patcher.original("subprocess") mswindows = sys.platform == "win32" if getattr(subprocess_orig, 'TimeoutExpired', None) is None: # Backported from Python 3.3. # https://bitbucket.org/eventlet/eventlet/issue/89 class TimeoutExpired(Exception): """This exception is raised when the timeout expires while waiting for a child process. """ def __init__(self, cmd, timeout, output=None): self.cmd = cmd self.timeout = timeout self.output = output
from eventlet import patcher from eventlet.green import os, socket from eventlet.green.urllib import parse as urllib_parse patcher.inject('http.client', globals(), ('os', os), ('socket', socket), ('urllib.parse', urllib_parse)) del patcher del urllib_parse
# stupid test_support messing with our mojo import test.test_support i_r_e = test.test_support.is_resource_enabled def is_resource_enabled(resource): if resource == 'network': return True else: return i_r_e(resource) test.test_support.is_resource_enabled = is_resource_enabled patcher.inject('test.test_ssl', globals(), ('asyncore', asyncore), ('BaseHTTPServer', BaseHTTPServer), ('select', select), ('socket', socket), ('SocketServer', SocketServer), ('ssl', ssl), ('threading', threading), ('urllib', urllib)) # TODO svn.python.org stopped serving up the cert that these tests expect; # presumably they've updated svn trunk but the tests in released versions will # probably break forever. This is why you don't write tests that connect to # external servers. NetworkedTests.testConnect = lambda s: None NetworkedTests.testFetchServerCert = lambda s: None NetworkedTests.test_algorithms = lambda s: None # these don't pass because nonblocking ssl sockets don't report
from eventlet import patcher from eventlet.green import SimpleHTTPServer patcher.inject( 'test.test_SimpleHTTPServer', globals(), ('SimpleHTTPServer', SimpleHTTPServer)) if __name__ == "__main__": test_main()
from eventlet.green import socket from eventlet.green import time from eventlet.green import httplib from eventlet.green import ftplib import six if six.PY2: to_patch = [('socket', socket), ('httplib', httplib), ('time', time), ('ftplib', ftplib)] try: from eventlet.green import ssl to_patch.append(('ssl', ssl)) except ImportError: pass patcher.inject('urllib', globals(), *to_patch) try: URLopener except NameError: patcher.inject('urllib.request', globals(), *to_patch) # patch a bunch of things that have imports inside the # function body; this is lame and hacky but I don't feel # too bad because urllib is a hacky pile of junk that no # one should be using anyhow URLopener.open_http = patcher.patch_function(URLopener.open_http, ('httplib', httplib)) if hasattr(URLopener, 'open_https'): URLopener.open_https = patcher.patch_function(URLopener.open_https, ('httplib', httplib)) URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, ('ftplib', ftplib))
from eventlet import patcher from eventlet.green import BaseHTTPServer from eventlet.green import urllib patcher.inject('SimpleHTTPServer', globals(), ('BaseHTTPServer', BaseHTTPServer), ('urllib', urllib)) del patcher if __name__ == '__main__': test()
from eventlet import patcher from eventlet.green import httplib from eventlet.green import urllib patcher.inject( 'test.test_urllib', globals(), ('httplib', httplib), ('urllib', urllib)) if __name__ == "__main__": test_main()
from eventlet import patcher from eventlet.green import select from eventlet.green import socket from eventlet.green import time patcher.inject("asyncore", globals(), ('select', select), ('socket', socket), ('time', time)) del patcher
from eventlet import patcher from eventlet.green import asyncore from eventlet.green import select from eventlet.green import socket from eventlet.green import threading from eventlet.green import time patcher.inject("test.test_asyncore", globals()) def new_closeall_check(self, usedefault): # Check that close_all() closes everything in a given map l = [] testmap = {} for i in range(10): c = dummychannel() l.append(c) self.assertEqual(c.socket.closed, False) testmap[i] = c if usedefault: # the only change we make is to not assign to asyncore.socket_map # because doing so fails to assign to the real asyncore's socket_map # and thus the test fails socketmap = asyncore.socket_map.copy() try: asyncore.socket_map.clear() asyncore.socket_map.update(testmap) asyncore.close_all() finally:
#!/usr/bin/env python from eventlet import patcher from eventlet.green import socket from eventlet.green import select from eventlet.green import time from eventlet.green import thread from eventlet.green import threading patcher.inject('test.test_socket', globals(), ('socket', socket), ('select', select), ('time', time), ('thread', thread), ('threading', threading)) # TODO: fix TCPTimeoutTest.testInterruptedTimeout = lambda *a: None if __name__ == "__main__": test_main()