Skip to content
Snippets Groups Projects
Commit 61c2a8b6 authored by Stein Elgethun's avatar Stein Elgethun
Browse files

Use django-q to create tasks when sending mail

Isuse: GREG-66
parent 7f754ae0
No related branches found
No related tags found
1 merge request!98Greg 66 mail queue
from django.conf import settings from django.conf import settings
from django.core.mail import send_mail
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django_q.tasks import async_task
def registration_template(institution, sponsor) -> str: def registration_template(institution, sponsor) -> str:
...@@ -17,19 +17,25 @@ def confirmation_template(guest) -> str: ...@@ -17,19 +17,25 @@ def confirmation_template(guest) -> str:
return render_to_string("sponsor_confirmation.txt", keywords) return render_to_string("sponsor_confirmation.txt", keywords)
def send_registration_mail(mail_to, sponsor) -> int: def send_registration_mail(mail_to, sponsor) -> str:
return send_mail( return async_task(
subject="Subject", "django.core.mail.send_mail",
message=registration_template(settings.INSTANCE_NAME, sponsor), **{
from_email=None, "subject": "Subject",
recipient_list=[mail_to], "message": registration_template(settings.INSTANCE_NAME, sponsor),
"from_email": None,
"recipient_list": [mail_to],
}
) )
def send_confirmation_mail(mail_to, guest) -> int: def send_confirmation_mail(mail_to, guest) -> str:
return send_mail( return async_task(
subject="Subject", "django.core.mail.send_mail",
message=confirmation_template(guest), **{
from_email=None, "subject": "Subject",
recipient_list=[mail_to], "message": confirmation_template(guest),
"from_email": None,
"recipient_list": [mail_to],
}
) )
from django.core import mail from django.core import mail
from django_q.tasks import result
import pytest import pytest
from gregui import mailutils from gregui import mailutils
...@@ -33,7 +34,8 @@ Your guest, Foo Bar, has completed their registration, please confirm the guest ...@@ -33,7 +34,8 @@ Your guest, Foo Bar, has completed their registration, please confirm the guest
@pytest.mark.django_db @pytest.mark.django_db
def test_registration_mail(): def test_registration_mail():
mail.outbox = [] mail.outbox = []
assert mailutils.send_registration_mail("test@example.no", "Foo") == 1 task_id = mailutils.send_registration_mail("test@example.no", "Foo")
assert result(task_id) == 1
assert len(mail.outbox) == 1 assert len(mail.outbox) == 1
assert mail.outbox[0].to == ["test@example.no"] assert mail.outbox[0].to == ["test@example.no"]
...@@ -41,6 +43,7 @@ def test_registration_mail(): ...@@ -41,6 +43,7 @@ def test_registration_mail():
@pytest.mark.django_db @pytest.mark.django_db
def test_confirmation_mail(): def test_confirmation_mail():
mail.outbox = [] mail.outbox = []
assert mailutils.send_confirmation_mail("test@example.no", "Foo") == 1 task_id = mailutils.send_confirmation_mail("test@example.no", "Foo")
assert result(task_id) == 1
assert len(mail.outbox) == 1 assert len(mail.outbox) == 1
assert mail.outbox[0].to == ["test@example.no"] assert mail.outbox[0].to == ["test@example.no"]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment