Esempio n. 1
0
 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()
Esempio n. 2
0
 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()
Esempio n. 3
0
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