Greened asyncore.

This commit is contained in:
Ryan Williams
2009-11-29 02:18:18 -05:00
parent 1b6fe06cb9
commit 92d9739f2d
3 changed files with 65 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
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

View File

@@ -0,0 +1,51 @@
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)
asyncore.close_all()
finally:
testmap = asyncore.socket_map.copy()
asyncore.socket_map.clear()
asyncore.socket_map.update(socketmap)
else:
asyncore.close_all(testmap)
self.assertEqual(len(testmap), 0)
for c in l:
self.assertEqual(c.socket.closed, True)
HelperFunctionTests.closeall_check = new_closeall_check
if __name__ == "__main__":
test_main()

View File

@@ -1,10 +1,12 @@
from eventlet import patcher from eventlet import patcher
from eventlet.green import asyncore
from eventlet.green import ftplib from eventlet.green import ftplib
from eventlet.green import threading from eventlet.green import threading
from eventlet.green import socket from eventlet.green import socket
patcher.inject('test.test_ftplib', patcher.inject('test.test_ftplib',
globals(), globals(),
('asyncore', asyncore),
('ftplib', ftplib), ('ftplib', ftplib),
('socket', socket), ('socket', socket),
('threading', threading)) ('threading', threading))