mirror of
https://github.com/GSA/notifications-api.git
synced 2026-05-06 00:59:41 -04:00
Allow international letters to be cancelled
Our code was assuming that any notifications with `international` set to `True` were text messages. It was then trying to look up delivery information for a notification which wasn’t sent to a phone number, causing an exception.
This commit is contained in:
@@ -140,7 +140,11 @@ def update_notification_status_by_id(notification_id, status, sent_by=None, deta
|
||||
_duplicate_update_warning(notification, status)
|
||||
return None
|
||||
|
||||
if notification.international and not country_records_delivery(notification.phone_prefix):
|
||||
if (
|
||||
notification.notification_type == 'sms'
|
||||
and notification.international
|
||||
and not country_records_delivery(notification.phone_prefix)
|
||||
):
|
||||
return None
|
||||
if not notification.sent_by and sent_by:
|
||||
notification.sent_by = sent_by
|
||||
|
||||
@@ -122,6 +122,17 @@ def test_should_update_status_by_id_if_pending_virus_check(sample_letter_templat
|
||||
assert updated.status == 'cancelled'
|
||||
|
||||
|
||||
def test_should_update_status_of_international_letter_to_cancelled(sample_letter_template):
|
||||
notification = create_notification(
|
||||
template=sample_letter_template,
|
||||
international=True,
|
||||
postage='europe',
|
||||
)
|
||||
assert Notification.query.get(notification.id).international is True
|
||||
update_notification_status_by_id(notification.id, 'cancelled')
|
||||
assert Notification.query.get(notification.id).status == 'cancelled'
|
||||
|
||||
|
||||
def test_should_update_status_by_id_and_set_sent_by(sample_template):
|
||||
notification = create_notification(template=sample_template, status='sending')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user