mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-03 18:01:08 -05:00
Merge pull request #2581 from alphagov/mini-revert
Revert "Change email status to permanent-failure if SES raises InvalidParameterValue"
This commit is contained in:
@@ -9,7 +9,7 @@ from app.dao import notifications_dao
|
|||||||
from app.dao.notifications_dao import update_notification_status_by_id
|
from app.dao.notifications_dao import update_notification_status_by_id
|
||||||
from app.delivery import send_to_providers
|
from app.delivery import send_to_providers
|
||||||
from app.exceptions import NotificationTechnicalFailureException
|
from app.exceptions import NotificationTechnicalFailureException
|
||||||
from app.models import NOTIFICATION_PERMANENT_FAILURE, NOTIFICATION_TECHNICAL_FAILURE
|
from app.models import NOTIFICATION_TECHNICAL_FAILURE
|
||||||
|
|
||||||
|
|
||||||
@notify_celery.task(bind=True, name="deliver_sms", max_retries=48, default_retry_delay=300)
|
@notify_celery.task(bind=True, name="deliver_sms", max_retries=48, default_retry_delay=300)
|
||||||
@@ -47,8 +47,8 @@ def deliver_email(self, notification_id):
|
|||||||
raise NoResultFound()
|
raise NoResultFound()
|
||||||
send_to_providers.send_email_to_provider(notification)
|
send_to_providers.send_email_to_provider(notification)
|
||||||
except InvalidEmailError as e:
|
except InvalidEmailError as e:
|
||||||
current_app.logger.info(e)
|
current_app.logger.exception(e)
|
||||||
update_notification_status_by_id(notification_id, NOTIFICATION_PERMANENT_FAILURE)
|
update_notification_status_by_id(notification_id, 'technical-failure')
|
||||||
except Exception:
|
except Exception:
|
||||||
try:
|
try:
|
||||||
current_app.logger.exception(
|
current_app.logger.exception(
|
||||||
|
|||||||
@@ -84,14 +84,14 @@ def test_should_go_into_technical_error_if_exceeds_retries_on_deliver_email_task
|
|||||||
assert str(sample_notification.id) in e.value.message
|
assert str(sample_notification.id) in e.value.message
|
||||||
|
|
||||||
|
|
||||||
def test_should_go_into_permanent_failure_and_not_retry_if_invalid_email(sample_notification, mocker):
|
def test_should_technical_error_and_not_retry_if_invalid_email(sample_notification, mocker):
|
||||||
mocker.patch('app.delivery.send_to_providers.send_email_to_provider', side_effect=InvalidEmailError('bad email'))
|
mocker.patch('app.delivery.send_to_providers.send_email_to_provider', side_effect=InvalidEmailError('bad email'))
|
||||||
mocker.patch('app.celery.provider_tasks.deliver_email.retry')
|
mocker.patch('app.celery.provider_tasks.deliver_email.retry')
|
||||||
|
|
||||||
deliver_email(sample_notification.id)
|
deliver_email(sample_notification.id)
|
||||||
|
|
||||||
assert provider_tasks.deliver_email.retry.called is False
|
assert provider_tasks.deliver_email.retry.called is False
|
||||||
assert sample_notification.status == 'permanent-failure'
|
assert sample_notification.status == 'technical-failure'
|
||||||
|
|
||||||
|
|
||||||
def test_should_retry_and_log_exception(sample_notification, mocker):
|
def test_should_retry_and_log_exception(sample_notification, mocker):
|
||||||
|
|||||||
Reference in New Issue
Block a user