Skip to content

Commit

Permalink
change
Browse files Browse the repository at this point in the history
  • Loading branch information
marcoacierno committed Nov 24, 2024
1 parent 3e44957 commit 3cea8b4
Showing 1 changed file with 11 additions and 17 deletions.
28 changes: 11 additions & 17 deletions backend/notifications/tests/test_tasks.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import smtplib
from unittest.mock import patch
from uuid import uuid4
import time_machine
from django.core import mail
from notifications.tasks import send_pending_email
from notifications.tasks import send_pending_email, send_pending_email_failed
from notifications.models import SentEmail
from notifications.tests.factories import SentEmailFactory

Expand Down Expand Up @@ -73,26 +74,19 @@ def side_effect(*args, **kwargs):
assert len(mail.outbox) == 0


def test_send_pending_email_handles_failures(mocker):
def test_send_pending_email_failure():
pending_email_1 = SentEmailFactory(
status=SentEmail.Status.pending, created="2020-01-01 12:00Z"
)

original_method = SentEmail.mark_as_sent

def _side_effect(*args, **kwargs):
if _side_effect.counter == 0:
_side_effect.counter = 1
raise smtplib.SMTPException("test")

return original_method(pending_email_1, *args, **kwargs)

_side_effect.counter = 0

mocker.patch("notifications.tasks.send_email", side_effect=_side_effect)

with time_machine.travel("2021-01-01 12:00Z", tick=False):
send_pending_email.apply(kwargs={"sent_email_id": pending_email_1.id})
send_pending_email_failed(
None,
smtplib.SMTPException("test"),
uuid4().hex,
(pending_email_1.id,),
{},
None,
)

pending_email_1.refresh_from_db()

Expand Down

0 comments on commit 3cea8b4

Please sign in to comment.