Ejemplo n.º 1
0
    async def test_20_queue(self, call_later):
        plugin = MagicMock()
        async def run(*args, **kwargs):
            return None
        plugin.check_and_clean = MagicMock(side_effect=run)
        plugin.queue = MagicMock(side_effect=run)
        plugin.queue_cfg = {
            'tasks_on_queue': [10,10],
        }
        plugin.tasks_queued = 0
        plugin.tasks_processing = 0
        self.queue.plugins = [plugin]
        self.queue.check_proxy = MagicMock()
        
        await self.queue.queue_loop()
        call_later.assert_called_once()
        
        self.cfg['queue']['queue_interval'] = 123
        call_later.reset_mock()
        await self.queue.queue_loop()
        call_later.assert_called_once_with(123, self.queue.queue_loop)
        
        self.cfg['queue']['queue_interval'] = 0
        call_later.reset_mock()
        await self.queue.queue_loop()
        call_later.assert_called_once()
        self.assertNotEqual(call_later.call_args[0][0], 0)
        
        self.assertTrue(plugin.check_and_clean.called)
        self.assertTrue(plugin.queue.called)
        self.assertTrue(self.queue.check_proxy.called)

        # check that raising an exception doesn't propagate
        async def run(*args, **kwargs):
            raise Exception()
        plugin.check_and_clean = MagicMock(side_effect=run)
        plugin.queue = MagicMock(side_effect=run)
        self.queue.check_proxy = MagicMock(side_effect=Exception)
        await self.queue.queue_loop()