os_fork: python 3 fixes and tests.
parent
18b984a0b4
commit
c413d53144
@ -0,0 +1,52 @@
|
||||
|
||||
import testlib
|
||||
import unittest2
|
||||
|
||||
import mitogen.os_fork
|
||||
import mitogen.service
|
||||
|
||||
|
||||
class CorkTest(testlib.RouterMixin, testlib.TestCase):
|
||||
klass = mitogen.os_fork.Corker
|
||||
|
||||
def ping(self, latch):
|
||||
latch.put('pong')
|
||||
|
||||
def test_cork_broker(self):
|
||||
latch = mitogen.core.Latch()
|
||||
self.broker.defer(self.ping, latch)
|
||||
self.assertEquals('pong', latch.get())
|
||||
|
||||
corker = self.klass(brokers=(self.broker,))
|
||||
corker.cork()
|
||||
|
||||
latch = mitogen.core.Latch()
|
||||
self.broker.defer(self.ping, latch)
|
||||
self.assertRaises(mitogen.core.TimeoutError,
|
||||
lambda: latch.get(timeout=0.5))
|
||||
corker.uncork()
|
||||
self.assertEquals('pong', latch.get())
|
||||
|
||||
def test_cork_pool(self):
|
||||
pool = mitogen.service.Pool(self.router, services=(), size=4)
|
||||
try:
|
||||
latch = mitogen.core.Latch()
|
||||
pool.defer(self.ping, latch)
|
||||
self.assertEquals('pong', latch.get())
|
||||
|
||||
corker = self.klass(pools=(pool,))
|
||||
corker.cork()
|
||||
|
||||
latch = mitogen.core.Latch()
|
||||
pool.defer(self.ping, latch)
|
||||
self.assertRaises(mitogen.core.TimeoutError,
|
||||
lambda: latch.get(timeout=0.5))
|
||||
corker.uncork()
|
||||
self.assertEquals('pong', latch.get())
|
||||
finally:
|
||||
pool.stop(join=True)
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest2.main()
|
Loading…
Reference in New Issue