bottleneckcrm/backend/common/tests_celery_tasks.py
Ashwin Kumar fc05248c28
revamp and upgrade to modern stack (#562)
revamp and upgrade to modern stack
2025-11-29 10:07:50 +05:30

290 lines
8.8 KiB
Python

from datetime import datetime, timedelta
from django.test import TestCase
from django.test.utils import override_settings
from accounts.tests import AccountCreateTest
from cases.tests import CaseCreation
from common.models import Comment, User
from common.tasks import (
resend_activation_link_to_user,
send_email_to_new_user,
send_email_user_delete,
send_email_user_mentions,
send_email_user_status,
)
from common.tests import ObjectsCreation
from contacts.tests import ContactObjectsCreation
from invoices.tests import InvoiceCreateTest
from leads.tests import TestLeadModel
from opportunity.tests import OpportunityModel
from tasks.tests import TaskCreateTest
class TestCeleryTasks(ObjectsCreation, TestCase):
@override_settings(
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
CELERY_ALWAYS_EAGER=True,
BROKER_BACKEND="memory",
)
def test_celery_tasks(self):
task = send_email_to_new_user.apply(
(
self.user1.email,
self.user.email,
),
)
self.assertEqual("SUCCESS", task.state)
task = send_email_user_status.apply(
(
self.user1.id,
self.user.id,
),
)
self.assertEqual("SUCCESS", task.state)
self.user1.is_active = False
self.user1.has_sales_access = False
self.user1.has_marketing_access = True
self.user1.save()
task = send_email_user_status.apply(
(self.user1.id,),
)
self.assertEqual("SUCCESS", task.state)
self.user1.is_active = True
self.user1.has_sales_access = False
self.user1.has_marketing_access = False
self.user1.save()
task = send_email_user_status.apply(
(self.user1.id,),
)
self.assertEqual("SUCCESS", task.state)
task = send_email_user_delete.apply(
(self.user1.email,),
)
self.assertEqual("SUCCESS", task.state)
task = resend_activation_link_to_user.apply(
(self.user1.email,),
)
self.assertEqual("SUCCESS", task.state)
task = resend_activation_link_to_user.apply(
(self.user1.email,),
)
self.assertEqual("SUCCESS", task.state)
class TestUserMentionsForAccountComments(AccountCreateTest, TestCase):
@override_settings(
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
CELERY_ALWAYS_EAGER=True,
BROKER_BACKEND="memory",
)
def test_user_mentions_for_account_comment(self):
self.user_comment = User.objects.create(
first_name="johnComment",
username="johnDoeComment",
email="johnDoeComment@example.com",
role="ADMIN",
)
self.user_comment.set_password("password")
self.user_comment.save()
self.comment.comment = "content @{}".format(self.user_comment.username)
self.comment.account = self.account
self.comment.save()
task = send_email_user_mentions.apply(
(
self.comment.id,
"accounts",
str(self.comment.org.id),
),
)
self.assertEqual("SUCCESS", task.state)
class TestUserMentionsForContactsComments(ContactObjectsCreation, TestCase):
@override_settings(
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
CELERY_ALWAYS_EAGER=True,
BROKER_BACKEND="memory",
)
def test_user_mentions_for_contacts_comments(self):
self.user_comment = User.objects.create(
first_name="johnComment",
username="johnDoeComment",
email="johnDoeComment@example.com",
role="ADMIN",
)
self.user_comment.set_password("password")
self.user_comment.save()
self.comment.comment = "content @{}".format(self.user_comment.username)
self.comment.contact = self.contact
self.comment.save()
task = send_email_user_mentions.apply(
(
self.comment.id,
"contacts",
str(self.comment.org.id),
),
)
self.assertEqual("SUCCESS", task.state)
class TestUserMentionsForLeadsComments(TestLeadModel, TestCase):
@override_settings(
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
CELERY_ALWAYS_EAGER=True,
BROKER_BACKEND="memory",
)
def test_user_mentions_for_leads_comments(self):
self.user_comment = User.objects.create(
first_name="johnComment",
username="johnDoeComment",
email="johnDoeComment@example.com",
role="ADMIN",
)
self.user_comment.set_password("password")
self.user_comment.save()
self.comment.comment = "content @{}".format(self.user_comment.username)
self.comment.lead = self.lead
self.comment.save()
task = send_email_user_mentions.apply(
(
self.comment.id,
"leads",
str(self.comment.org.id),
),
)
self.assertEqual("SUCCESS", task.state)
class TestUserMentionsForOpportunityComments(OpportunityModel, TestCase):
@override_settings(
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
CELERY_ALWAYS_EAGER=True,
BROKER_BACKEND="memory",
)
def test_user_mentions_for_opportunity_comments(self):
self.user_comment = User.objects.create(
first_name="johnComment",
username="johnDoeComment",
email="johnDoeComment@example.com",
role="ADMIN",
)
self.user_comment.set_password("password")
self.user_comment.save()
self.comment.comment = "content @{}".format(self.user_comment.username)
self.comment.opportunity = self.opportunity
self.comment.save()
task = send_email_user_mentions.apply(
(
self.comment.id,
"opportunity",
str(self.comment.org.id),
),
)
self.assertEqual("SUCCESS", task.state)
class TestUserMentionsForCasesComments(CaseCreation, TestCase):
@override_settings(
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
CELERY_ALWAYS_EAGER=True,
BROKER_BACKEND="memory",
)
def test_user_mentions_for_cases_comments(self):
self.user_comment = User.objects.create(
first_name="johnComment",
username="johnDoeComment",
email="johnDoeComment@example.com",
role="ADMIN",
)
self.user_comment.set_password("password")
self.user_comment.save()
self.comment.comment = "content @{}".format(self.user_comment.username)
self.comment.case = self.case
self.comment.save()
task = send_email_user_mentions.apply(
(
self.comment.id,
"cases",
str(self.comment.org.id),
),
)
self.assertEqual("SUCCESS", task.state)
class TestUserMentionsForTasksComments(TaskCreateTest, TestCase):
@override_settings(
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
CELERY_ALWAYS_EAGER=True,
BROKER_BACKEND="memory",
)
def test_user_mentions_for_tasks_comments(self):
self.user_comment = User.objects.create(
first_name="johnComment",
username="johnDoeComment",
email="johnDoeComment@example.com",
role="ADMIN",
)
self.user_comment.set_password("password")
self.user_comment.save()
self.comment.comment = "content @{}".format(self.user_comment.username)
self.comment.task = self.task
self.comment.save()
task = send_email_user_mentions.apply(
(
self.comment.id,
"tasks",
str(self.comment.org.id),
),
)
self.assertEqual("SUCCESS", task.state)
class TestUserMentionsForInvoiceComments(InvoiceCreateTest, TestCase):
@override_settings(
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
CELERY_ALWAYS_EAGER=True,
BROKER_BACKEND="memory",
)
def test_user_mentions_for_invoice_comments(self):
self.user_comment = User.objects.create(
first_name="johnComment",
username="johnDoeComment",
email="johnDoeComment@example.com",
role="ADMIN",
)
self.user_comment.set_password("password")
self.user_comment.save()
self.comment.comment = "content @{}".format(self.user_comment.username)
self.comment.invoice = self.invoice
self.comment.save()
task = send_email_user_mentions.apply(
(
self.comment.id,
"invoices",
str(self.comment.org.id),
),
)
self.assertEqual("SUCCESS", task.state)