def test_done_with_processed_tasks_empty_except(self):
     task_queue = Mock()
     task_queue.qsize = Mock(return_value=10)
     task_queue.get_nowait = Mock(side_effect=gevent_queue.Empty())
     with patch('notification_pusher.logger', Mock()) as logger:
         notification_pusher.done_with_processed_tasks(task_queue)
     self.assertTrue(logger.debug.called)
    def test_done_with_processed_tasks_empty_queue(self):
        q = Mock(None)
        q.qsize = Mock(return_value=42)
        q.get_nowait = Mock(side_effect=gevent_queue.Empty)

        np.done_with_processed_tasks(q)

        self.assertRaises(gevent_queue.Empty)
 def test_done_with_processed_tasks_success(self):
     task_queue = Mock()
     task_queue.qsize = Mock(return_value=10)
     task = Mock()
     task_queue.get_nowait = Mock(return_value=(task, 'action_name'))
     with patch('notification_pusher.logger', Mock()) as logger:
         notification_pusher.done_with_processed_tasks(task_queue)
     self.assertTrue(logger.debug.called)
    def test_done_with_processed_tasks_execution(self):
        task = Mock()
        task_queue = Mock()

        task_queue.qsize = Mock(return_value=3)
        task_queue.get_nowait = Mock(side_effect=(
            (task, 'action1'),
            (task, 'action2'),
            gevent_queue.Empty
        ))

        notification_pusher.done_with_processed_tasks(task_queue)

        assert task.action1.called
        assert task.action2.called
        assert not task.action3.called
    def test_done_with_processed_tasks_execution_exception(self):
        task = Mock()

        task.action1 = Mock(side_effect=tarantool.DatabaseError)

        task_queue = Mock()

        task_queue.qsize = Mock(return_value=1)
        task_queue.get_nowait = Mock(side_effect=(
            (task, 'action1'),
        ))

        mocked_logger = Mock()
        original_logger = notification_pusher.logger

        notification_pusher.logger = mocked_logger
        notification_pusher.done_with_processed_tasks(task_queue)
        notification_pusher.logger = original_logger

        assert task.action1.called
        assert mocked_logger.exception.called