def test_enqueue_task_stopped(self): """Test enqueue_task method manager stopped.""" obj = TaskManager() func = mock.Mock() with self.assertRaises(ValueError): obj.enqueue_task(func) func.assert_not_called()
def test_enqueue_task_positive(self): """Test enqueue_task method positive result.""" obj = TaskManager() func = mock.Mock() obj._stopped = False obj._pool = mock.Mock() obj._pool.apply_async = mock.Mock(return_value="async_result") obj.enqueue_task(func) obj._pool.apply_async.assert_called_once()
class TestTaskPoolManagementManager(TestCase): """Tests for pool management by task manager. Lazy and non lazy.""" def tearDown(self): """Stop task manager. assumed it's created on each test.""" self.task_manager.stop() def test_start_stop_reflected_by_is_started(self) -> None: """Test is_started property of task manaher.""" self.task_manager = TaskManager() assert not self.task_manager.is_started self.task_manager.start() assert self.task_manager.is_started self.task_manager.stop() assert not self.task_manager.is_started def test_lazy_pool_not_started(self) -> None: """Lazy pool creation assumes pool create on first task enqueue.""" self.task_manager = TaskManager(is_lazy_pool_start=True) self.task_manager.start() assert not self.task_manager._pool def test_not_lazy_pool_is_started(self) -> None: """Lazy pool creation assumes pool create on first task enqueue.""" self.task_manager = TaskManager(is_lazy_pool_start=False) self.task_manager.start() assert self.task_manager._pool @patch("aea.skills.tasks.Pool.apply_async") def test_lazy_pool_start_on_enqueue(self, apply_async_mock: Mock) -> None: """ Test lazy pool created on enqueue once. :param apply_async_mock: is mock for aea.skills.tasks.Pool.apply_async """ self.task_manager = TaskManager(is_lazy_pool_start=True) self.task_manager.start() assert not self.task_manager._pool self.task_manager.enqueue_task(print) apply_async_mock.assert_called_once() assert self.task_manager._pool """Check pool created once on several enqueues""" pool = self.task_manager._pool self.task_manager.enqueue_task(print) assert self.task_manager._pool is pool