3

I want to write a unit test in Django for a function which has a celery send_task function.

How do I write its UT in Django and mock celery?

def push_to_queue(self, data):
        """ function to add task in the backend queue
        Args:
            Accept data dictionary
        returns: Nothing
        """
        try:
            LOG.info(
                "Pushing %s to queue %s " % (data, settings.SCHEDULER_STATUS_QUEUE_NAME)
            )
            # sqs handler
            handle = Celery("scheduler_service", broker="sqs://")
            handle.send_task(
                settings.BACKEND_TASK,
                queue=settings.SCHEDULER_STATUS_QUEUE_NAME,
                kwargs=data,
            )
            LOG.info(
                "Pushed message successfully to %s queue."
                % settings.SCHEDULER_STATUS_QUEUE_NAME
            )
        except Exception as err:
            LOG.error("Exception while pusing meesage to queue %s " % str(err))
caladeve
  • 456
  • 4
  • 12

0 Answers0