async def test_task_watch_timeout(): parent, child = MockTask(), MockTask() mgr = TaskManager(parent) mgr.emit_child_error = AsyncMock() child.wait_for_scheduling = AsyncMock() child.future.done = Mock(return_value=False) await mgr._init_timeout_check(child, 0) child.wait_for_scheduling.assert_called() parent.cluster.destroy.assert_called_with(child.id) mgr.emit_child_error.assert_called()
async def test_task_watch_ok(): parent, child = MockTask(), MockTask() mgr = TaskManager(parent) mgr.conns[Mock()] = child.id # register connection mgr.emit_child_error = AsyncMock() child.wait_for_scheduling = AsyncMock() child.future.done = Mock(return_value=False) await mgr._init_timeout_check(child, 0) child.wait_for_scheduling.assert_called() parent.cluster.kill.assert_not_called() mgr.emit_child_error.assert_not_called()
async def test_child_lost(): conn = Mock() parent, child = MockTask(), MockTask() mgr = TaskManager(parent) child.conn = conn mgr.conns[conn] = child.id mgr[child.id] = child mgr.emit_child_error = AsyncMock() await mgr.on_child_close(conn) assert child.conn is None assert conn not in mgr.conns mgr.emit_child_error.assert_called()