core: fix call_function_test regression
Second time in 3 weeks. So stupid. This time write tests.pull/175/head
parent
0f29baa077
commit
085b3d21bd
@ -0,0 +1,40 @@
|
|||||||
|
|
||||||
|
import unittest2
|
||||||
|
|
||||||
|
import mitogen.core
|
||||||
|
import testlib
|
||||||
|
|
||||||
|
|
||||||
|
def yield_stuff_then_die(sender):
|
||||||
|
for x in xrange(5):
|
||||||
|
sender.put(x)
|
||||||
|
sender.close()
|
||||||
|
return 10
|
||||||
|
|
||||||
|
|
||||||
|
class ConstructorTest(testlib.RouterMixin, testlib.TestCase):
|
||||||
|
def test_handle(self):
|
||||||
|
recv = mitogen.core.Receiver(self.router)
|
||||||
|
self.assertTrue(isinstance(recv.handle, int))
|
||||||
|
self.assertTrue(recv.handle > 100)
|
||||||
|
self.router.route(
|
||||||
|
mitogen.core.Message.pickled(
|
||||||
|
'hi',
|
||||||
|
dst_id=0,
|
||||||
|
handle=recv.handle,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
self.assertEquals('hi', recv.get().unpickle())
|
||||||
|
|
||||||
|
|
||||||
|
class IterationTest(testlib.RouterMixin, testlib.TestCase):
|
||||||
|
def test_dead_stops_iteration(self):
|
||||||
|
recv = mitogen.core.Receiver(self.router)
|
||||||
|
fork = self.router.fork()
|
||||||
|
ret = fork.call_async(yield_stuff_then_die, recv.to_sender())
|
||||||
|
self.assertEquals(list(range(5)), list(m.unpickle() for m in recv))
|
||||||
|
self.assertEquals(10, ret.get().unpickle())
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest2.main()
|
Loading…
Reference in New Issue