mirror of
https://github.com/GSA/notifications-api.git
synced 2026-03-04 01:12:06 -05:00
Merge pull request #3334 from alphagov/new-zendesk-form
Use the new Zendesk form for all tickets
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
from datetime import datetime
|
||||
|
||||
from flask import current_app
|
||||
from notifications_utils.clients.zendesk.zendesk_client import (
|
||||
NotifySupportTicket,
|
||||
)
|
||||
|
||||
from app import cbc_proxy_client, notify_celery, zendesk_client
|
||||
from app.clients.cbc_proxy import CBCProxyRetryableException
|
||||
@@ -142,11 +145,16 @@ def send_broadcast_event(broadcast_event_id):
|
||||
'If this alert is not expected refer to the runbook for instructions.',
|
||||
'https://docs.google.com/document/d/1J99yOlfp4nQz6et0w5oJVqi-KywtIXkxrEIyq_g2XUs',
|
||||
])
|
||||
zendesk_client.create_ticket(
|
||||
subject="Live broadcast sent",
|
||||
ticket = NotifySupportTicket(
|
||||
subject='Live broadcast sent',
|
||||
message=message,
|
||||
ticket_type=zendesk_client.TYPE_INCIDENT,
|
||||
ticket_type=NotifySupportTicket.TYPE_INCIDENT,
|
||||
technical_ticket=True,
|
||||
org_id=current_app.config['BROADCAST_ORGANISATION_ID'],
|
||||
org_type='central',
|
||||
service_id=str(broadcast_message.service_id)
|
||||
)
|
||||
zendesk_client.send_ticket_to_zendesk(ticket)
|
||||
current_app.logger.error(message)
|
||||
|
||||
for provider in broadcast_event.service.get_available_broadcast_providers():
|
||||
|
||||
@@ -2,6 +2,9 @@ from datetime import datetime, timedelta
|
||||
|
||||
import pytz
|
||||
from flask import current_app
|
||||
from notifications_utils.clients.zendesk.zendesk_client import (
|
||||
NotifySupportTicket,
|
||||
)
|
||||
from sqlalchemy import func
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
|
||||
@@ -179,11 +182,15 @@ def raise_alert_if_letter_notifications_still_sending():
|
||||
# Only send alerts in production
|
||||
if current_app.config['NOTIFY_ENVIRONMENT'] in ['live', 'production', 'test']:
|
||||
message += ". Resolve using https://github.com/alphagov/notifications-manuals/wiki/Support-Runbook#deal-with-letters-still-in-sending" # noqa
|
||||
zendesk_client.create_ticket(
|
||||
subject="[{}] Letters still sending".format(current_app.config['NOTIFY_ENVIRONMENT']),
|
||||
|
||||
ticket = NotifySupportTicket(
|
||||
subject=f"[{current_app.config['NOTIFY_ENVIRONMENT']}] Letters still sending",
|
||||
message=message,
|
||||
ticket_type=zendesk_client.TYPE_INCIDENT
|
||||
ticket_type=NotifySupportTicket.TYPE_INCIDENT,
|
||||
technical_ticket=True,
|
||||
ticket_categories=['notify_letters']
|
||||
)
|
||||
zendesk_client.send_ticket_to_zendesk(ticket)
|
||||
else:
|
||||
current_app.logger.info(message)
|
||||
|
||||
@@ -250,11 +257,14 @@ def letter_raise_alert_if_no_ack_file_for_zip():
|
||||
|
||||
if len(zip_file_set - ack_file_set) > 0:
|
||||
if current_app.config['NOTIFY_ENVIRONMENT'] in ['live', 'production', 'test']:
|
||||
zendesk_client.create_ticket(
|
||||
ticket = NotifySupportTicket(
|
||||
subject="Letter acknowledge error",
|
||||
message=message,
|
||||
ticket_type=zendesk_client.TYPE_INCIDENT
|
||||
ticket_type=NotifySupportTicket.TYPE_INCIDENT,
|
||||
technical_ticket=True,
|
||||
ticket_categories=['notify_letters']
|
||||
)
|
||||
zendesk_client.send_ticket_to_zendesk(ticket)
|
||||
current_app.logger.error(message)
|
||||
|
||||
if len(ack_file_set - zip_file_set) > 0:
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from flask import current_app
|
||||
from notifications_utils.clients.zendesk.zendesk_client import (
|
||||
NotifySupportTicket,
|
||||
)
|
||||
from sqlalchemy import between
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
|
||||
@@ -214,11 +217,14 @@ def check_if_letters_still_pending_virus_check():
|
||||
Notifications: {}""".format(len(letters), sorted(letter_ids))
|
||||
|
||||
if current_app.config['NOTIFY_ENVIRONMENT'] in ['live', 'production', 'test']:
|
||||
zendesk_client.create_ticket(
|
||||
subject="[{}] Letters still pending virus check".format(current_app.config['NOTIFY_ENVIRONMENT']),
|
||||
ticket = NotifySupportTicket(
|
||||
subject=f"[{current_app.config['NOTIFY_ENVIRONMENT']}] Letters still pending virus check",
|
||||
message=msg,
|
||||
ticket_type=zendesk_client.TYPE_INCIDENT
|
||||
ticket_type=NotifySupportTicket.TYPE_INCIDENT,
|
||||
technical_ticket=True,
|
||||
ticket_categories=['notify_letters']
|
||||
)
|
||||
zendesk_client.send_ticket_to_zendesk(ticket)
|
||||
current_app.logger.error(msg)
|
||||
|
||||
|
||||
@@ -233,11 +239,14 @@ def check_if_letters_still_in_created():
|
||||
"#deal-with-Letters-still-in-created.".format(len(letters))
|
||||
|
||||
if current_app.config['NOTIFY_ENVIRONMENT'] in ['live', 'production', 'test']:
|
||||
zendesk_client.create_ticket(
|
||||
subject="[{}] Letters still in 'created' status".format(current_app.config['NOTIFY_ENVIRONMENT']),
|
||||
ticket = NotifySupportTicket(
|
||||
subject=f"[{current_app.config['NOTIFY_ENVIRONMENT']}] Letters still in 'created' status",
|
||||
message=msg,
|
||||
ticket_type=zendesk_client.TYPE_INCIDENT
|
||||
ticket_type=NotifySupportTicket.TYPE_INCIDENT,
|
||||
technical_ticket=True,
|
||||
ticket_categories=['notify_letters']
|
||||
)
|
||||
zendesk_client.send_ticket_to_zendesk(ticket)
|
||||
current_app.logger.error(msg)
|
||||
|
||||
|
||||
@@ -292,13 +301,13 @@ def check_for_services_with_high_failure_rates_or_sending_to_tv_numbers():
|
||||
if current_app.config['NOTIFY_ENVIRONMENT'] in ['live', 'production', 'test']:
|
||||
message += ("\nYou can find instructions for this ticket in our manual:\n"
|
||||
"https://github.com/alphagov/notifications-manuals/wiki/Support-Runbook#Deal-with-services-with-high-failure-rates-or-sending-sms-to-tv-numbers") # noqa
|
||||
zendesk_client.create_ticket(
|
||||
subject="[{}] High failure rates for sms spotted for services".format(
|
||||
current_app.config['NOTIFY_ENVIRONMENT']
|
||||
),
|
||||
ticket = NotifySupportTicket(
|
||||
subject=f"[{current_app.config['NOTIFY_ENVIRONMENT']}] High failure rates for sms spotted for services",
|
||||
message=message,
|
||||
ticket_type=zendesk_client.TYPE_INCIDENT
|
||||
ticket_type=NotifySupportTicket.TYPE_INCIDENT,
|
||||
technical_ticket=True
|
||||
)
|
||||
zendesk_client.send_ticket_to_zendesk(ticket)
|
||||
|
||||
|
||||
@notify_celery.task(name='trigger-link-tests')
|
||||
|
||||
@@ -38,7 +38,7 @@ notifications-python-client==6.0.2
|
||||
# PaaS
|
||||
awscli-cwlogs==1.4.6
|
||||
|
||||
git+https://github.com/alphagov/notifications-utils.git@46.0.0#egg=notifications-utils==46.0.0
|
||||
git+https://github.com/alphagov/notifications-utils.git@46.1.0#egg=notifications-utils==46.1.0
|
||||
|
||||
# gds-metrics requires prometheseus 0.2.0, override that requirement as 0.7.1 brings significant performance gains
|
||||
prometheus-client==0.10.1
|
||||
|
||||
@@ -40,7 +40,7 @@ notifications-python-client==6.0.2
|
||||
# PaaS
|
||||
awscli-cwlogs==1.4.6
|
||||
|
||||
git+https://github.com/alphagov/notifications-utils.git@46.0.0#egg=notifications-utils==46.0.0
|
||||
git+https://github.com/alphagov/notifications-utils.git@46.1.0#egg=notifications-utils==46.1.0
|
||||
|
||||
# gds-metrics requires prometheseus 0.2.0, override that requirement as 0.7.1 brings significant performance gains
|
||||
prometheus-client==0.10.1
|
||||
@@ -51,41 +51,40 @@ alembic==1.6.5
|
||||
amqp==1.4.9
|
||||
anyjson==0.3.3
|
||||
attrs==21.2.0
|
||||
awscli==1.20.8
|
||||
awscli==1.20.46
|
||||
bcrypt==3.2.0
|
||||
billiard==3.3.0.23
|
||||
bleach==3.3.0
|
||||
blinker==1.4
|
||||
boto==2.49.0
|
||||
boto3==1.18.8
|
||||
botocore==1.21.8
|
||||
boto3==1.18.46
|
||||
botocore==1.21.46
|
||||
certifi==2021.5.30
|
||||
charset-normalizer==2.0.3
|
||||
charset-normalizer==2.0.6
|
||||
click==8.0.1
|
||||
colorama==0.4.3
|
||||
dnspython==1.16.0
|
||||
docutils==0.15.2
|
||||
flask-redis==0.4.0
|
||||
geojson==2.5.0
|
||||
govuk-bank-holidays==0.9
|
||||
greenlet==1.1.0
|
||||
govuk-bank-holidays==0.10
|
||||
greenlet==1.1.1
|
||||
idna==3.2
|
||||
Jinja2==3.0.1
|
||||
jmespath==0.10.0
|
||||
kombu==3.0.37
|
||||
Mako==1.1.4
|
||||
Mako==1.1.5
|
||||
MarkupSafe==2.0.1
|
||||
mistune==0.8.4
|
||||
orderedset==2.0.3
|
||||
packaging==21.0
|
||||
phonenumbers==8.12.28
|
||||
phonenumbers==8.12.31
|
||||
pyasn1==0.4.8
|
||||
pycparser==2.20
|
||||
pyparsing==2.4.7
|
||||
PyPDF2==1.26.0
|
||||
pyrsistent==0.18.0
|
||||
python-dateutil==2.8.2
|
||||
python-editor==1.0.4
|
||||
python-json-logger==2.0.2
|
||||
pytz==2021.1
|
||||
PyYAML==5.4.1
|
||||
@@ -98,5 +97,5 @@ six==1.16.0
|
||||
smartypants==2.0.1
|
||||
soupsieve==2.2.1
|
||||
statsd==3.3.0
|
||||
urllib3==1.26.6
|
||||
urllib3==1.26.7
|
||||
webencodings==0.5.1
|
||||
|
||||
@@ -3,7 +3,11 @@ from unittest.mock import ANY, Mock, call
|
||||
|
||||
import pytest
|
||||
from celery.exceptions import Retry
|
||||
from flask import current_app
|
||||
from freezegun import freeze_time
|
||||
from notifications_utils.clients.zendesk.zendesk_client import (
|
||||
NotifySupportTicket,
|
||||
)
|
||||
|
||||
from app.celery.broadcast_message_tasks import (
|
||||
BroadcastIntegrityError,
|
||||
@@ -33,8 +37,10 @@ def test_send_broadcast_event_queues_up_for_active_providers(mocker, notify_api,
|
||||
template = create_template(sample_broadcast_service, BROADCAST_TYPE)
|
||||
broadcast_message = create_broadcast_message(template, status=BroadcastStatusType.BROADCASTING)
|
||||
event = create_broadcast_event(broadcast_message)
|
||||
mock_create_ticket = mocker.patch("app.celery.broadcast_message_tasks.zendesk_client.create_ticket")
|
||||
|
||||
mock_send_ticket_to_zendesk = mocker.patch(
|
||||
'app.celery.broadcast_message_tasks.zendesk_client.send_ticket_to_zendesk',
|
||||
autospec=True,
|
||||
)
|
||||
mock_send_broadcast_provider_message = mocker.patch(
|
||||
'app.celery.broadcast_message_tasks.send_broadcast_provider_message',
|
||||
)
|
||||
@@ -48,7 +54,7 @@ def test_send_broadcast_event_queues_up_for_active_providers(mocker, notify_api,
|
||||
]
|
||||
|
||||
# we're on test env so this isn't called
|
||||
assert mock_create_ticket.called is False
|
||||
assert mock_send_ticket_to_zendesk.called is False
|
||||
|
||||
|
||||
def test_send_broadcast_event_only_sends_to_one_provider_if_set_on_service(
|
||||
@@ -113,22 +119,36 @@ def test_send_broadcast_event_creates_zendesk(
|
||||
areas={**area_data, 'simple_polygons': []},
|
||||
)
|
||||
event = create_broadcast_event(broadcast_message)
|
||||
mock_create_ticket = mocker.patch("app.celery.broadcast_message_tasks.zendesk_client.create_ticket")
|
||||
mock_create_ticket = mocker.spy(NotifySupportTicket, '__init__')
|
||||
mock_send_ticket_to_zendesk = mocker.patch(
|
||||
'app.celery.broadcast_message_tasks.zendesk_client.send_ticket_to_zendesk',
|
||||
autospec=True,
|
||||
)
|
||||
|
||||
mocker.patch('app.celery.broadcast_message_tasks.send_broadcast_provider_message')
|
||||
|
||||
with set_config(notify_api, 'NOTIFY_ENVIRONMENT', 'live'):
|
||||
send_broadcast_event(event.id)
|
||||
|
||||
assert mock_create_ticket.call_count == 1
|
||||
zendesk_args = mock_create_ticket.call_args[1]
|
||||
assert zendesk_args['ticket_type'] == 'incident'
|
||||
mock_create_ticket.assert_called_once_with(
|
||||
ANY,
|
||||
subject='Live broadcast sent',
|
||||
message=ANY,
|
||||
ticket_type='incident',
|
||||
technical_ticket=True,
|
||||
org_id=current_app.config['BROADCAST_ORGANISATION_ID'],
|
||||
org_type='central',
|
||||
service_id=str(sample_broadcast_service.id)
|
||||
)
|
||||
ticket_message = mock_create_ticket.call_args_list[0][1]['message']
|
||||
|
||||
assert str(broadcast_message.id) in zendesk_args['message']
|
||||
assert 'channel severe' in zendesk_args['message']
|
||||
assert f"areas {expected_message}" in zendesk_args['message']
|
||||
assert str(broadcast_message.id) in ticket_message
|
||||
assert 'channel severe' in ticket_message
|
||||
assert f"areas {expected_message}" in ticket_message
|
||||
# the start of the content from the broadcast template
|
||||
assert "Dear Sir/Madam" in zendesk_args['message']
|
||||
assert "Dear Sir/Madam" in ticket_message
|
||||
|
||||
mock_send_ticket_to_zendesk.assert_called_once()
|
||||
|
||||
|
||||
def test_send_broadcast_event_doesnt_create_zendesk_when_cancelling(mocker, notify_api, sample_broadcast_service):
|
||||
@@ -140,22 +160,26 @@ def test_send_broadcast_event_doesnt_create_zendesk_when_cancelling(mocker, noti
|
||||
)
|
||||
create_broadcast_event(broadcast_message, message_type=BroadcastEventMessageType.ALERT)
|
||||
cancel_event = create_broadcast_event(broadcast_message, message_type=BroadcastEventMessageType.CANCEL)
|
||||
mock_create_ticket = mocker.patch("app.celery.broadcast_message_tasks.zendesk_client.create_ticket")
|
||||
|
||||
mock_send_ticket_to_zendesk = mocker.patch(
|
||||
'app.celery.broadcast_message_tasks.zendesk_client.send_ticket_to_zendesk',
|
||||
autospec=True,
|
||||
)
|
||||
mocker.patch('app.celery.broadcast_message_tasks.send_broadcast_provider_message')
|
||||
|
||||
with set_config(notify_api, 'NOTIFY_ENVIRONMENT', 'live'):
|
||||
send_broadcast_event(cancel_event.id)
|
||||
|
||||
assert mock_create_ticket.called is False
|
||||
assert mock_send_ticket_to_zendesk.called is False
|
||||
|
||||
|
||||
def test_send_broadcast_event_doesnt_create_zendesk_on_staging(mocker, notify_api, sample_broadcast_service):
|
||||
template = create_template(sample_broadcast_service, BROADCAST_TYPE)
|
||||
broadcast_message = create_broadcast_message(template, status=BroadcastStatusType.BROADCASTING)
|
||||
event = create_broadcast_event(broadcast_message)
|
||||
mock_create_ticket = mocker.patch("app.celery.broadcast_message_tasks.zendesk_client.create_ticket")
|
||||
|
||||
mock_send_ticket_to_zendesk = mocker.patch(
|
||||
'app.celery.broadcast_message_tasks.zendesk_client.send_ticket_to_zendesk',
|
||||
autospec=True,
|
||||
)
|
||||
mock_send_broadcast_provider_message = mocker.patch(
|
||||
'app.celery.broadcast_message_tasks.send_broadcast_provider_message',
|
||||
)
|
||||
@@ -164,7 +188,7 @@ def test_send_broadcast_event_doesnt_create_zendesk_on_staging(mocker, notify_ap
|
||||
send_broadcast_event(event.id)
|
||||
|
||||
assert mock_send_broadcast_provider_message.apply_async.called is True
|
||||
assert mock_create_ticket.called is False
|
||||
assert mock_send_ticket_to_zendesk.called is False
|
||||
|
||||
|
||||
@freeze_time('2020-08-01 12:00')
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
from datetime import date, datetime, timedelta
|
||||
from unittest.mock import call
|
||||
from unittest.mock import ANY, call
|
||||
|
||||
import pytest
|
||||
import pytz
|
||||
from flask import current_app
|
||||
from freezegun import freeze_time
|
||||
from notifications_utils.clients.zendesk.zendesk_client import ZendeskClient
|
||||
from notifications_utils.clients.zendesk.zendesk_client import (
|
||||
NotifySupportTicket,
|
||||
)
|
||||
|
||||
from app.celery import nightly_tasks
|
||||
from app.celery.nightly_tasks import (
|
||||
@@ -232,34 +234,47 @@ def test_should_call_delete_inbound_sms(notify_api, mocker):
|
||||
assert nightly_tasks.delete_inbound_sms_older_than_retention.call_count == 1
|
||||
|
||||
|
||||
def test_create_ticket_if_letter_notifications_still_sending(mocker):
|
||||
def test_create_ticket_if_letter_notifications_still_sending(notify_api, mocker):
|
||||
mock_get_letters = mocker.patch(
|
||||
"app.celery.nightly_tasks.get_letter_notifications_still_sending_when_they_shouldnt_be"
|
||||
)
|
||||
|
||||
mock_get_letters.return_value = 1, date(2018, 1, 15)
|
||||
mock_create_ticket = mocker.patch("app.celery.nightly_tasks.zendesk_client.create_ticket")
|
||||
|
||||
raise_alert_if_letter_notifications_still_sending()
|
||||
|
||||
mock_create_ticket.assert_called_once_with(
|
||||
subject="[test] Letters still sending",
|
||||
message="There are 1 letters in the 'sending' state from Monday 15 January. Resolve using https://github.com/alphagov/notifications-manuals/wiki/Support-Runbook#deal-with-letters-still-in-sending", # noqa
|
||||
ticket_type=ZendeskClient.TYPE_INCIDENT
|
||||
mock_create_ticket = mocker.spy(NotifySupportTicket, '__init__')
|
||||
mock_send_ticket_to_zendesk = mocker.patch(
|
||||
'app.celery.nightly_tasks.zendesk_client.send_ticket_to_zendesk',
|
||||
autospec=True,
|
||||
)
|
||||
|
||||
raise_alert_if_letter_notifications_still_sending()
|
||||
mock_create_ticket.assert_called_once_with(
|
||||
ANY,
|
||||
subject='[test] Letters still sending',
|
||||
message=(
|
||||
"There are 1 letters in the 'sending' state from Monday 15 January. Resolve using "
|
||||
"https://github.com/alphagov/notifications-manuals/wiki/Support-Runbook#deal-with-letters-still-in-sending"
|
||||
),
|
||||
ticket_type='incident',
|
||||
technical_ticket=True,
|
||||
ticket_categories=['notify_letters']
|
||||
)
|
||||
mock_send_ticket_to_zendesk.assert_called_once()
|
||||
|
||||
def test_dont_create_ticket_if_letter_notifications_not_still_sending(mocker):
|
||||
|
||||
def test_dont_create_ticket_if_letter_notifications_not_still_sending(notify_api, mocker):
|
||||
mock_get_letters = mocker.patch(
|
||||
"app.celery.nightly_tasks.get_letter_notifications_still_sending_when_they_shouldnt_be"
|
||||
)
|
||||
|
||||
mock_get_letters.return_value = 0, None
|
||||
mock_create_ticket = mocker.patch("app.celery.nightly_tasks.zendesk_client.create_ticket")
|
||||
mock_send_ticket_to_zendesk = mocker.patch(
|
||||
"app.celery.nightly_tasks.zendesk_client.send_ticket_to_zendesk",
|
||||
autospec=True
|
||||
)
|
||||
|
||||
raise_alert_if_letter_notifications_still_sending()
|
||||
|
||||
mock_create_ticket.assert_not_called()
|
||||
mock_send_ticket_to_zendesk.assert_not_called()
|
||||
|
||||
|
||||
@freeze_time("Thursday 17th January 2018 17:00")
|
||||
@@ -359,7 +374,11 @@ def test_letter_raise_alert_if_no_ack_file_for_zip_does_not_raise_when_files_mat
|
||||
@freeze_time('2018-01-11T23:00:00')
|
||||
def test_letter_raise_alert_if_ack_files_not_match_zip_list(mocker, notify_db):
|
||||
mock_file_list = mocker.patch("app.aws.s3.get_list_of_files_by_suffix", side_effect=mock_s3_get_list_diff)
|
||||
mock_zendesk = mocker.patch("app.celery.nightly_tasks.zendesk_client.create_ticket")
|
||||
mock_create_ticket = mocker.spy(NotifySupportTicket, '__init__')
|
||||
mock_send_ticket_to_zendesk = mocker.patch(
|
||||
'app.celery.nightly_tasks.zendesk_client.send_ticket_to_zendesk',
|
||||
autospec=True,
|
||||
)
|
||||
|
||||
letter_raise_alert_if_no_ack_file_for_zip()
|
||||
|
||||
@@ -372,11 +391,15 @@ def test_letter_raise_alert_if_ack_files_not_match_zip_list(mocker, notify_db):
|
||||
current_app.config['LETTERS_PDF_BUCKET_NAME'],
|
||||
datetime.utcnow().strftime('%Y-%m-%d') + '/zips_sent',
|
||||
current_app.config['DVLA_RESPONSE_BUCKET_NAME'])
|
||||
mock_zendesk.assert_called_once_with(
|
||||
mock_create_ticket.assert_called_once_with(
|
||||
ANY,
|
||||
subject="Letter acknowledge error",
|
||||
message=message,
|
||||
ticket_type='incident'
|
||||
ticket_type='incident',
|
||||
technical_ticket=True,
|
||||
ticket_categories=['notify_letters']
|
||||
)
|
||||
mock_send_ticket_to_zendesk.assert_called_once()
|
||||
|
||||
|
||||
@freeze_time('2018-01-11T23:00:00')
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
from collections import namedtuple
|
||||
from datetime import datetime, timedelta
|
||||
from unittest import mock
|
||||
from unittest.mock import call
|
||||
from unittest.mock import ANY, call
|
||||
|
||||
import pytest
|
||||
from freezegun import freeze_time
|
||||
from notifications_utils.clients.zendesk.zendesk_client import (
|
||||
NotifySupportTicket,
|
||||
)
|
||||
|
||||
from app.celery import scheduled_tasks
|
||||
from app.celery.scheduled_tasks import (
|
||||
@@ -364,7 +367,11 @@ def test_check_job_status_task_does_not_raise_error(sample_template):
|
||||
@freeze_time("2019-05-30 14:00:00")
|
||||
def test_check_if_letters_still_pending_virus_check(mocker, sample_letter_template):
|
||||
mock_logger = mocker.patch('app.celery.tasks.current_app.logger.error')
|
||||
mock_create_ticket = mocker.patch('app.celery.nightly_tasks.zendesk_client.create_ticket')
|
||||
mock_create_ticket = mocker.spy(NotifySupportTicket, '__init__')
|
||||
mock_send_ticket_to_zendesk = mocker.patch(
|
||||
'app.celery.scheduled_tasks.zendesk_client.send_ticket_to_zendesk',
|
||||
autospec=True,
|
||||
)
|
||||
|
||||
create_notification(template=sample_letter_template,
|
||||
status=NOTIFICATION_PENDING_VIRUS_CHECK,
|
||||
@@ -391,17 +398,25 @@ def test_check_if_letters_still_pending_virus_check(mocker, sample_letter_templa
|
||||
Notifications: {}""".format(id_references)
|
||||
|
||||
mock_logger.assert_called_once_with(message)
|
||||
mock_create_ticket.assert_called_with(
|
||||
message=message,
|
||||
mock_create_ticket.assert_called_once_with(
|
||||
ANY,
|
||||
subject='[test] Letters still pending virus check',
|
||||
ticket_type='incident'
|
||||
message=message,
|
||||
ticket_type='incident',
|
||||
technical_ticket=True,
|
||||
ticket_categories=['notify_letters']
|
||||
)
|
||||
mock_send_ticket_to_zendesk.assert_called_once()
|
||||
|
||||
|
||||
@freeze_time("2019-05-30 14:00:00")
|
||||
def test_check_if_letters_still_in_created_during_bst(mocker, sample_letter_template):
|
||||
mock_logger = mocker.patch('app.celery.tasks.current_app.logger.error')
|
||||
mock_create_ticket = mocker.patch('app.celery.nightly_tasks.zendesk_client.create_ticket')
|
||||
mock_create_ticket = mocker.spy(NotifySupportTicket, '__init__')
|
||||
mock_send_ticket_to_zendesk = mocker.patch(
|
||||
'app.celery.scheduled_tasks.zendesk_client.send_ticket_to_zendesk',
|
||||
autospec=True,
|
||||
)
|
||||
|
||||
create_notification(template=sample_letter_template, created_at=datetime(2019, 5, 1, 12, 0))
|
||||
create_notification(template=sample_letter_template, created_at=datetime(2019, 5, 29, 16, 29))
|
||||
@@ -418,16 +433,24 @@ def test_check_if_letters_still_in_created_during_bst(mocker, sample_letter_temp
|
||||
|
||||
mock_logger.assert_called_once_with(message)
|
||||
mock_create_ticket.assert_called_with(
|
||||
ANY,
|
||||
message=message,
|
||||
subject="[test] Letters still in 'created' status",
|
||||
ticket_type='incident'
|
||||
ticket_type='incident',
|
||||
technical_ticket=True,
|
||||
ticket_categories=['notify_letters']
|
||||
)
|
||||
mock_send_ticket_to_zendesk.assert_called_once()
|
||||
|
||||
|
||||
@freeze_time("2019-01-30 14:00:00")
|
||||
def test_check_if_letters_still_in_created_during_utc(mocker, sample_letter_template):
|
||||
mock_logger = mocker.patch('app.celery.tasks.current_app.logger.error')
|
||||
mock_create_ticket = mocker.patch('app.celery.scheduled_tasks.zendesk_client.create_ticket')
|
||||
mock_create_ticket = mocker.spy(NotifySupportTicket, '__init__')
|
||||
mock_send_ticket_to_zendesk = mocker.patch(
|
||||
'app.celery.scheduled_tasks.zendesk_client.send_ticket_to_zendesk',
|
||||
autospec=True,
|
||||
)
|
||||
|
||||
create_notification(template=sample_letter_template, created_at=datetime(2018, 12, 1, 12, 0))
|
||||
create_notification(template=sample_letter_template, created_at=datetime(2019, 1, 29, 17, 29))
|
||||
@@ -443,11 +466,15 @@ def test_check_if_letters_still_in_created_during_utc(mocker, sample_letter_temp
|
||||
"https://github.com/alphagov/notifications-manuals/wiki/Support-Runbook#deal-with-Letters-still-in-created."
|
||||
|
||||
mock_logger.assert_called_once_with(message)
|
||||
mock_create_ticket.assert_called_with(
|
||||
mock_create_ticket.assert_called_once_with(
|
||||
ANY,
|
||||
message=message,
|
||||
subject="[test] Letters still in 'created' status",
|
||||
ticket_type='incident'
|
||||
ticket_type='incident',
|
||||
technical_ticket=True,
|
||||
ticket_categories=['notify_letters']
|
||||
)
|
||||
mock_send_ticket_to_zendesk.assert_called_once()
|
||||
|
||||
|
||||
@pytest.mark.parametrize('offset', (
|
||||
@@ -582,7 +609,11 @@ def test_check_for_services_with_high_failure_rates_or_sending_to_tv_numbers(
|
||||
mocker, notify_db_session, failure_rates, sms_to_tv_numbers, expected_message
|
||||
):
|
||||
mock_logger = mocker.patch('app.celery.tasks.current_app.logger.warning')
|
||||
mock_create_ticket = mocker.patch('app.celery.scheduled_tasks.zendesk_client.create_ticket')
|
||||
mock_create_ticket = mocker.spy(NotifySupportTicket, '__init__')
|
||||
mock_send_ticket_to_zendesk = mocker.patch(
|
||||
'app.celery.scheduled_tasks.zendesk_client.send_ticket_to_zendesk',
|
||||
autospec=True,
|
||||
)
|
||||
mock_failure_rates = mocker.patch(
|
||||
'app.celery.scheduled_tasks.dao_find_services_with_high_failure_rates', return_value=failure_rates
|
||||
)
|
||||
@@ -598,10 +629,13 @@ def test_check_for_services_with_high_failure_rates_or_sending_to_tv_numbers(
|
||||
assert mock_sms_to_tv_numbers.called
|
||||
mock_logger.assert_called_once_with(expected_message)
|
||||
mock_create_ticket.assert_called_with(
|
||||
ANY,
|
||||
message=expected_message + zendesk_actions,
|
||||
subject="[test] High failure rates for sms spotted for services",
|
||||
ticket_type='incident'
|
||||
ticket_type='incident',
|
||||
technical_ticket=True
|
||||
)
|
||||
mock_send_ticket_to_zendesk.assert_called_once()
|
||||
|
||||
|
||||
def test_trigger_link_tests_calls_for_all_providers(
|
||||
|
||||
Reference in New Issue
Block a user