diff --git a/app/config.py b/app/config.py index 473c92222..dacda4ff7 100644 --- a/app/config.py +++ b/app/config.py @@ -163,8 +163,6 @@ class Config(object): MOU_SIGNED_ON_BEHALF_ON_BEHALF_RECEIPT_TEMPLATE_ID = '522b6657-5ca5-4368-a294-6b527703bd0b' MOU_NOTIFY_TEAM_ALERT_TEMPLATE_ID = 'd0e66c4c-0c50-43f0-94f5-f85b613202d4' - HIGH_VOLUME_SERVICE = '539d63a1-701d-400d-ab11-f3ee2319d4d4' - BROKER_URL = 'sqs://' BROKER_TRANSPORT_OPTIONS = { 'region': AWS_REGION, @@ -334,10 +332,11 @@ class Config(object): FIRETEXT_INBOUND_SMS_AUTH = json.loads(os.environ.get('FIRETEXT_INBOUND_SMS_AUTH', '[]')) MMG_INBOUND_SMS_AUTH = json.loads(os.environ.get('MMG_INBOUND_SMS_AUTH', '[]')) MMG_INBOUND_SMS_USERNAME = json.loads(os.environ.get('MMG_INBOUND_SMS_USERNAME', '[]')) - ROUTE_SECRET_KEY_1 = os.environ.get('ROUTE_SECRET_KEY_1', '') ROUTE_SECRET_KEY_2 = os.environ.get('ROUTE_SECRET_KEY_2', '') + HIGH_VOLUME_SERVICE = json.loads(os.environ.get('HIGH_VOLUME_SERVICE', '[]')) + # Format is as follows: # {"dataset_1": "token_1", ...} PERFORMANCE_PLATFORM_ENDPOINTS = json.loads(os.environ.get('PERFORMANCE_PLATFORM_ENDPOINTS', '{}')) @@ -404,6 +403,8 @@ class Test(Development): NOTIFY_ENVIRONMENT = 'test' TESTING = True + HIGH_VOLUME_SERVICE = ['941b6f9a-50d7-4742-8d50-f365ca74bf27'] + CSV_UPLOAD_BUCKET_NAME = 'test-notifications-csv-upload' TEST_LETTERS_BUCKET_NAME = 'test-test-letters' DVLA_RESPONSE_BUCKET_NAME = 'test.notify.com-ftp' diff --git a/app/v2/notifications/post_notifications.py b/app/v2/notifications/post_notifications.py index d58786f36..d43ccfcf7 100644 --- a/app/v2/notifications/post_notifications.py +++ b/app/v2/notifications/post_notifications.py @@ -203,7 +203,7 @@ def process_sms_or_email_notification(*, form, notification_type, api_key, templ simulated=simulated ) - if str(service.id) == current_app.config.get('HIGH_VOLUME_SERVICE') and api_key.key_type == KEY_TYPE_NORMAL \ + if str(service.id) in current_app.config.get('HIGH_VOLUME_SERVICE') and api_key.key_type == KEY_TYPE_NORMAL \ and notification_type == EMAIL_TYPE: # Put GOV.UK Email notifications onto a queue # To take the pressure off the db for API requests put the notification for our high volume service onto a queue diff --git a/manifest.yml.j2 b/manifest.yml.j2 index cc72ffc24..8424f56d8 100644 --- a/manifest.yml.j2 +++ b/manifest.yml.j2 @@ -81,6 +81,9 @@ applications: ROUTE_SECRET_KEY_2: '{{ ROUTE_SECRET_KEY_2 }}' CRONITOR_KEYS: '{{ CRONITOR_KEYS | tojson }}' + HIGH_VOLUME_SERVICE: '{{ HIGH_VOLUME_SERVICE | tojson }}' + + PERFORMANCE_PLATFORM_ENDPOINTS: '{{ PERFORMANCE_PLATFORM_ENDPOINTS | tojson }}' DOCUMENT_DOWNLOAD_API_HOST: '{{ DOCUMENT_DOWNLOAD_API_HOST }}' diff --git a/tests/app/v2/notifications/test_post_notifications.py b/tests/app/v2/notifications/test_post_notifications.py index 0b2431892..960bc4906 100644 --- a/tests/app/v2/notifications/test_post_notifications.py +++ b/tests/app/v2/notifications/test_post_notifications.py @@ -955,8 +955,9 @@ def test_post_email_notification_when_data_is_empty_returns_400(client, sample_s def test_post_notifications_saves_email_to_queue(client, notify_db_session, mocker): save_email_task = mocker.patch("app.celery.tasks.save_api_email.apply_async") + mock_send_task = mocker.patch('app.celery.provider_tasks.deliver_email.apply_async') - service = create_service(service_id='539d63a1-701d-400d-ab11-f3ee2319d4d4', service_name='high volume service') + service = create_service(service_id='941b6f9a-50d7-4742-8d50-f365ca74bf27', service_name='high volume service') template = create_template(service=service, content='((message))', template_type=EMAIL_TYPE) data = { "email_address": "joe.citizen@example.com", @@ -976,14 +977,15 @@ def test_post_notifications_saves_email_to_queue(client, notify_db_session, mock assert json_resp['content']['body'] == "Dear citizen, have a nice day" assert json_resp['template']['id'] == str(template.id) save_email_task.assert_called_once_with([mock.ANY], queue='save-api-email-tasks') + assert not mock_send_task.called assert len(Notification.query.all()) == 0 def test_post_notifications_doesnt_save_email_to_queue_for_test_emails(client, notify_db_session, mocker): save_email_task = mocker.patch("app.celery.tasks.save_api_email.apply_async") - mocked_send_task = mocker.patch('app.celery.provider_tasks.deliver_email.apply_async') + mock_send_task = mocker.patch('app.celery.provider_tasks.deliver_email.apply_async') - service = create_service(service_id='539d63a1-701d-400d-ab11-f3ee2319d4d4', service_name='high volume service') + service = create_service(service_id='941b6f9a-50d7-4742-8d50-f365ca74bf27', service_name='high volume service') # create_api_key(service=service, key_type='test') template = create_template(service=service, content='((message))', template_type=EMAIL_TYPE) data = { @@ -1004,16 +1006,16 @@ def test_post_notifications_doesnt_save_email_to_queue_for_test_emails(client, n assert json_resp['id'] assert json_resp['content']['body'] == "Dear citizen, have a nice day" assert json_resp['template']['id'] == str(template.id) - assert mocked_send_task.called + assert mock_send_task.called assert not save_email_task.called assert len(Notification.query.all()) == 1 def test_post_notifications_doesnt_save_email_to_queue_for_sms(client, notify_db_session, mocker): save_email_task = mocker.patch("app.celery.tasks.save_api_email.apply_async") - mocked_send_task = mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') + mock_send_task = mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') - service = create_service(service_id='539d63a1-701d-400d-ab11-f3ee2319d4d4', service_name='high volume service') + service = create_service(service_id='941b6f9a-50d7-4742-8d50-f365ca74bf27', service_name='high volume service') template = create_template(service=service, content='((message))', template_type=SMS_TYPE) data = { "phone_number": '+447700900855', @@ -1030,7 +1032,7 @@ def test_post_notifications_doesnt_save_email_to_queue_for_sms(client, notify_db assert response.status_code == 201 assert json_resp['id'] - assert mocked_send_task.called + assert mock_send_task.called assert not save_email_task.called assert len(Notification.query.all()) == 1