mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-20 14:29:25 -04:00
Merge pull request #1598 from alphagov/letter-deskpro-ack-mod
Minor change to raising deskpro ticket and errors when letter acknowl…
This commit is contained in:
@@ -61,7 +61,7 @@ from app.celery.tasks import (
|
|||||||
)
|
)
|
||||||
from app.config import QueueNames, TaskNames
|
from app.config import QueueNames, TaskNames
|
||||||
from app.utils import convert_utc_to_bst
|
from app.utils import convert_utc_to_bst
|
||||||
from app.v2.errors import JobIncompleteError, NoAckFileReceived
|
from app.v2.errors import JobIncompleteError
|
||||||
from app.dao.service_callback_api_dao import get_service_callback_api_for_service
|
from app.dao.service_callback_api_dao import get_service_callback_api_for_service
|
||||||
from app.celery.service_callback_tasks import send_delivery_status_to_service
|
from app.celery.service_callback_tasks import send_delivery_status_to_service
|
||||||
import pytz
|
import pytz
|
||||||
@@ -533,17 +533,15 @@ def letter_raise_alert_if_no_ack_file_for_zip():
|
|||||||
# strip empty element before comparison
|
# strip empty element before comparison
|
||||||
ack_content_set.discard('')
|
ack_content_set.discard('')
|
||||||
zip_file_set.discard('')
|
zip_file_set.discard('')
|
||||||
if current_app.config['NOTIFY_ENVIRONMENT'] in ['production', 'test']:
|
|
||||||
if len(zip_file_set - ack_content_set) > 0:
|
if len(zip_file_set - ack_content_set) > 0:
|
||||||
|
if current_app.config['NOTIFY_ENVIRONMENT'] in ['production', 'test']:
|
||||||
deskpro_client.create_ticket(
|
deskpro_client.create_ticket(
|
||||||
subject="Letter acknowledge error",
|
subject="Letter acknowledge error",
|
||||||
message=deskpro_message,
|
message=deskpro_message,
|
||||||
ticket_type='alert'
|
ticket_type='alert'
|
||||||
)
|
)
|
||||||
|
current_app.logger.error(deskpro_message)
|
||||||
raise NoAckFileReceived(message=str(zip_file_set - ack_content_set))
|
|
||||||
else:
|
|
||||||
current_app.logger.info(deskpro_message)
|
|
||||||
|
|
||||||
if len(ack_content_set - zip_file_set) > 0:
|
if len(ack_content_set - zip_file_set) > 0:
|
||||||
current_app.logger.info(
|
current_app.logger.info(
|
||||||
|
|||||||
@@ -27,23 +27,6 @@ class JobIncompleteError(Exception):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class NoAckFileReceived(Exception):
|
|
||||||
def __init__(self, message):
|
|
||||||
self.message = message
|
|
||||||
self.status_code = 500
|
|
||||||
|
|
||||||
def to_dict_v2(self):
|
|
||||||
return {
|
|
||||||
'status_code': self.status_code,
|
|
||||||
"errors": [
|
|
||||||
{
|
|
||||||
"error": 'NoAckFileReceived',
|
|
||||||
"message": str(self.message)
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class TooManyRequestsError(InvalidRequest):
|
class TooManyRequestsError(InvalidRequest):
|
||||||
status_code = 429
|
status_code = 429
|
||||||
message_template = 'Exceeded send limits ({}) for today'
|
message_template = 'Exceeded send limits ({}) for today'
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ from app.models import (
|
|||||||
SMS_TYPE
|
SMS_TYPE
|
||||||
)
|
)
|
||||||
from app.utils import get_london_midnight_in_utc
|
from app.utils import get_london_midnight_in_utc
|
||||||
from app.v2.errors import JobIncompleteError, NoAckFileReceived
|
from app.v2.errors import JobIncompleteError
|
||||||
from tests.app.db import create_notification, create_service, create_template, create_job, create_rate
|
from tests.app.db import create_notification, create_service, create_template, create_job, create_rate
|
||||||
|
|
||||||
from tests.app.conftest import (
|
from tests.app.conftest import (
|
||||||
@@ -1151,10 +1151,8 @@ def test_letter_raise_alert_if_ack_files_not_match_zip_list(mocker, notify_db):
|
|||||||
'NOTIFY.20180111175008.ZIP|20180111175734')
|
'NOTIFY.20180111175008.ZIP|20180111175734')
|
||||||
mock_deskpro = mocker.patch("app.celery.scheduled_tasks.deskpro_client.create_ticket")
|
mock_deskpro = mocker.patch("app.celery.scheduled_tasks.deskpro_client.create_ticket")
|
||||||
|
|
||||||
with pytest.raises(expected_exception=NoAckFileReceived) as e:
|
letter_raise_alert_if_no_ack_file_for_zip()
|
||||||
letter_raise_alert_if_no_ack_file_for_zip()
|
|
||||||
|
|
||||||
assert e.value.message == str(set(['NOTIFY.20180111175009.ZIP', 'NOTIFY.20180111175010.ZIP']))
|
|
||||||
assert mock_file_list.call_count == 2
|
assert mock_file_list.call_count == 2
|
||||||
assert mock_get_file.call_count == 1
|
assert mock_get_file.call_count == 1
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user