diff --git a/eventlet/green/SocketServer.py b/eventlet/green/SocketServer.py index 21b1ac2..66026f4 100644 --- a/eventlet/green/SocketServer.py +++ b/eventlet/green/SocketServer.py @@ -1,59 +1,12 @@ -__import_lst = ['__all__', '__version__', 'BaseServer', 'TCPServer', 'UDPServer', 'ForkingMixIn', - 'ThreadingMixIn', 'BaseRequestHandler', 'StreamRequestHandler', 'DatagramRequestHandler'] -__SocketServer = __import__('SocketServer') -for var in __import_lst: - exec "%s = __SocketServer.%s" % (var, var) - - -# QQQ ForkingMixIn should be fixed to use green waitpid? +from eventlet import patcher from eventlet.green import socket +from eventlet.green import select +from eventlet.green import threading +patcher.inject('SocketServer', + globals(), + ('socket', socket), + ('select', select), + ('threading', threading)) -class TCPServer(TCPServer): - - def __init__(self, server_address, RequestHandlerClass): - """Constructor. May be extended, do not override.""" - BaseServer.__init__(self, server_address, RequestHandlerClass) - self.socket = socket.socket(self.address_family, - self.socket_type) - self.server_bind() - self.server_activate() - -class UDPServer(UDPServer): - - def __init__(self, server_address, RequestHandlerClass): - """Constructor. May be extended, do not override.""" - BaseServer.__init__(self, server_address, RequestHandlerClass) - self.socket = socket.socket(self.address_family, - self.socket_type) - self.server_bind() - self.server_activate() - -class ThreadingMixIn(ThreadingMixIn): - - def process_request(self, request, client_address): - """Start a new thread to process the request.""" - from eventlet.green import threading - t = threading.Thread(target = self.process_request_thread, - args = (request, client_address)) - if self.daemon_threads: - t.setDaemon (1) - t.start() - -class ForkingUDPServer(ForkingMixIn, UDPServer): pass -class ForkingTCPServer(ForkingMixIn, TCPServer): pass - -class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass -class ThreadingTCPServer(ThreadingMixIn, TCPServer): pass - -if hasattr(socket, 'AF_UNIX'): - - class UnixStreamServer(TCPServer): - address_family = socket.AF_UNIX - - class UnixDatagramServer(UDPServer): - address_family = socket.AF_UNIX - - class ThreadingUnixStreamServer(ThreadingMixIn, UnixStreamServer): pass - class ThreadingUnixDatagramServer(ThreadingMixIn, UnixDatagramServer): pass - +# QQQ ForkingMixIn should be fixed to use green waitpid? diff --git a/tests/stdlib/test_socket_ssl.py b/tests/stdlib/test_socket_ssl.py index 2a2a579..55cea01 100644 --- a/tests/stdlib/test_socket_ssl.py +++ b/tests/stdlib/test_socket_ssl.py @@ -1,20 +1,15 @@ #!/usr/bin/env python -from test import test_socket_ssl - +from eventlet import patcher from eventlet.green import socket from eventlet.green import urllib from eventlet.green import threading -test_socket_ssl.socket = socket -# bwahaha -import sys -sys.modules['urllib'] = urllib -sys.modules['threading'] = threading -# to get past the silly 'requires' check -test_socket_ssl.__name__ = '__main__' - -from test.test_socket_ssl import * +patcher.inject('test.test_socket_ssl', + globals(), + ('socket', socket), + ('urllib', urllib), + ('threading', threading)) if __name__ == "__main__": - test_main() \ No newline at end of file + test_main() diff --git a/tests/stdlib/test_socketserver.py b/tests/stdlib/test_socketserver.py index 61d5942..40e0a96 100644 --- a/tests/stdlib/test_socketserver.py +++ b/tests/stdlib/test_socketserver.py @@ -1,30 +1,23 @@ #!/usr/bin/env python -# to get past the silly 'requires' check -from test import test_support -test_support.use_resources = ['network'] - +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 -# need to override these modules before import so -# that classes inheriting from threading.Thread refer -# to the correct module -import sys -sys.modules['threading'] = threading -sys.modules['SocketServer'] = SocketServer +# to get past the silly 'requires' check +from test import test_support +test_support.use_resources = ['network'] -from test import test_socketserver - -test_socketserver.socket = socket -test_socketserver.select = select -test_socketserver.time = time - -# skipping these tests for now -#from test.test_socketserver import * +patcher.inject('test.test_socketserver', + globals(), + ('SocketServer', SocketServer), + ('socket', socket), + ('select', select), + ('time', time), + ('threading', threading)) if __name__ == "__main__": - pass#test_main() \ No newline at end of file + test_main() \ No newline at end of file