bottleneckcrm/backend/accounts/tests_celery_tasks.py
Ashwin Kumar c2b29afdf8
1.0 (#567)
1.0
2025-12-06 23:10:54 +05:30

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)