Модульное тестирование для периодической задачи celery
У меня есть периодическая задача celery, реализованная для отправки электронной почты пользователям в определенную дату, установленную в модели, Как я могу написать модульный тест для следующей задачи celery.
@app.task(bind=True)
def send_email(self):
send_date = timezone.now()
records = Model.object.filter(due_date=send_date)
for record in records:
template_data = {
'homepage_url': settings.WWW_ROOT,
'domain_name': settings.DOMAIN_NAME,
'inq': record.inq,
'task_name': record.name,
'task_created': record.created,
'date': record.send_date,
}
user_emails = []
if record.send_email_to_users: **Boolean Flag on model**
assignees_emails = []
for user in record.users.all():
user_emails.append(user.email)
send_email_function(
subject_template_path='',
body_template_path='',
template_data=template_data,
to_email_list=user_emails,
fail_silently=False,
content_subtype='html'
)