50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
from datetime import datetime, timedelta
|
|
|
|
from django.test import TestCase
|
|
from django.test.utils import override_settings
|
|
|
|
from accounts.models import AccountEmail
|
|
from accounts.tasks import (
|
|
send_email,
|
|
send_email_to_assigned_user,
|
|
send_scheduled_emails,
|
|
)
|
|
from accounts.tests import AccountCreateTest
|
|
|
|
|
|
class TestCeleryTasks(AccountCreateTest, TestCase):
|
|
@override_settings(
|
|
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
|
|
CELERY_ALWAYS_EAGER=True,
|
|
BROKER_BACKEND="memory",
|
|
)
|
|
def test_celery_tasks(self):
|
|
org_id = str(self.account.org.id)
|
|
email_scheduled = AccountEmail.objects.create(
|
|
message_subject="message subject",
|
|
message_body="message body",
|
|
scheduled_later=True,
|
|
timezone="Asia/Kolkata",
|
|
from_account=self.account,
|
|
scheduled_date_time=(datetime.now() - timedelta(minutes=5)),
|
|
from_email="from@email.com",
|
|
org=self.account.org,
|
|
)
|
|
email_scheduled.recipients.add(self.contact.id, self.contact_user1.id)
|
|
task = send_scheduled_emails.apply((org_id,))
|
|
self.assertEqual("SUCCESS", task.state)
|
|
|
|
task = send_email.apply((email_scheduled.id, org_id))
|
|
self.assertEqual("SUCCESS", task.state)
|
|
|
|
task = send_email_to_assigned_user.apply(
|
|
(
|
|
[
|
|
self.user.id,
|
|
self.user1.id,
|
|
],
|
|
self.account.id,
|
|
org_id,
|
|
),
|
|
)
|
|
self.assertEqual("SUCCESS", task.state)
|