diff --git a/eventstore/tasks.py b/eventstore/tasks.py index c165b1a7..1eb73625 100644 --- a/eventstore/tasks.py +++ b/eventstore/tasks.py @@ -827,7 +827,7 @@ def get_engage_inbound_and_reply(wa_contact_id, message_id): } -@app.task(acks_late=True, soft_time_limit=10, time_limit=15, bind=True) +@app.task(acks_late=True, soft_time_limit=10, time_limit=15) def update_whatsapp_template_send_status(message_id, preferred_channel=None): try: status = WhatsAppTemplateSendStatus.objects.get( diff --git a/eventstore/tests/test_tasks.py b/eventstore/tests/test_tasks.py index 16ddaa21..b8ca488a 100644 --- a/eventstore/tests/test_tasks.py +++ b/eventstore/tests/test_tasks.py @@ -8,7 +8,13 @@ from temba_client.v2 import TembaClient from eventstore import tasks -from eventstore.models import Covid19Triage, ImportError, ImportRow, MomConnectImport +from eventstore.models import ( + Covid19Triage, + ImportError, + ImportRow, + MomConnectImport, + WhatsAppTemplateSendStatus, +) from ndoh_hub import utils from registrations.models import ClinicCode @@ -917,3 +923,32 @@ def test_send_slack_message(self): response = utils.send_slack_message("test-mom", str(self.contact_details)) self.assertEqual(response, True) + + +class UpdateWhatsappTemplateSendStatus(TestCase): + def setUp(self): + self.status = WhatsAppTemplateSendStatus.objects.create( + message_id="test-message-id" + ) + + def test_update_status_whatsapp(self): + tasks.update_whatsapp_template_send_status.delay(self.status.message_id) + + self.status.refresh_from_db() + + self.assertEqual( + self.status.status, WhatsAppTemplateSendStatus.Status.EVENT_RECEIVED + ) + self.assertEqual(self.status.preferred_channel, "WhatsApp") + self.assertIsNotNone(self.status.event_received_at) + + def test_update_status_sms(self): + tasks.update_whatsapp_template_send_status.delay(self.status.message_id, "SMS") + + self.status.refresh_from_db() + + self.assertEqual( + self.status.status, WhatsAppTemplateSendStatus.Status.EVENT_RECEIVED + ) + self.assertEqual(self.status.preferred_channel, "SMS") + self.assertIsNotNone(self.status.event_received_at)