|
@@ -94,6 +94,9 @@ class MockPool(object):
|
|
|
def handle_result_event(self, *args, **kwargs):
|
|
|
pass
|
|
|
|
|
|
+ def flush(self):
|
|
|
+ pass
|
|
|
+
|
|
|
def grow(self, n=1):
|
|
|
self._processes += n
|
|
|
|
|
@@ -234,44 +237,18 @@ class test_ResultHandler(PoolCase):
|
|
|
)
|
|
|
self.assertTrue(x)
|
|
|
hub = Mock(name='hub')
|
|
|
- x.register_with_event_loop(hub)
|
|
|
+ recv = x._recv_message = Mock(name='recv_message')
|
|
|
+ recv.return_value = iter([])
|
|
|
x.on_state_change = Mock()
|
|
|
+ x.register_with_event_loop(hub)
|
|
|
proc = x.fileno_to_outq[3] = Mock()
|
|
|
reader = proc.outq._reader
|
|
|
reader.poll.return_value = False
|
|
|
x.handle_event(6) # KeyError
|
|
|
x.handle_event(3)
|
|
|
- reader.poll.assert_called_with(0)
|
|
|
- self.assertFalse(x.on_state_change.called)
|
|
|
-
|
|
|
- reader.poll.reset()
|
|
|
- reader.poll.return_value = True
|
|
|
- task = reader.recv.return_value = (1, (2, 3))
|
|
|
- x.handle_event(3)
|
|
|
- reader.poll.assert_called_with(0)
|
|
|
- reader.recv.assert_called_with()
|
|
|
- x.on_state_change.assert_called_with(task)
|
|
|
- self.assertTrue(x._it)
|
|
|
-
|
|
|
- reader.recv.return_value = None
|
|
|
- x.handle_event(3)
|
|
|
- self.assertIsNone(x._it)
|
|
|
-
|
|
|
- x._state = asynpool.TERMINATE
|
|
|
- it = x._process_result()
|
|
|
- next(it)
|
|
|
- with self.assertRaises(asynpool.CoroStop):
|
|
|
- it.send(3)
|
|
|
- x.handle_event(3)
|
|
|
- self.assertIsNone(x._it)
|
|
|
- x._state == asynpool.RUN
|
|
|
-
|
|
|
- reader.recv.side_effect = EOFError()
|
|
|
- it = x._process_result()
|
|
|
- next(it)
|
|
|
- with self.assertRaises(asynpool.CoroStop):
|
|
|
- it.send(3)
|
|
|
- reader.recv.side_effect = None
|
|
|
+ x._recv_message.assert_called_with(
|
|
|
+ hub.add_reader, 3, x.on_state_change,
|
|
|
+ )
|
|
|
|
|
|
|
|
|
class test_TaskPool(PoolCase):
|