From 77afecf8d2156a05f55b00ad9a93dc76ec9b20e0 Mon Sep 17 00:00:00 2001 From: Ryan Ahearn Date: Wed, 21 Dec 2022 15:10:44 -0500 Subject: [PATCH] Remove mmg & firetext from research_mode_tasks.py --- app/celery/research_mode_tasks.py | 77 ++++++------------- tests/app/celery/test_research_mode_tasks.py | 81 ++++++-------------- 2 files changed, 45 insertions(+), 113 deletions(-) diff --git a/app/celery/research_mode_tasks.py b/app/celery/research_mode_tasks.py index 4477b3994..b59b8b235 100644 --- a/app/celery/research_mode_tasks.py +++ b/app/celery/research_mode_tasks.py @@ -12,9 +12,9 @@ from app.celery.process_ses_receipts_tasks import process_ses_results from app.config import QueueNames from app.models import SMS_TYPE -temp_fail = "7700900003" -perm_fail = "7700900002" -delivered = "7700900001" +temp_fail = "5558675303" +perm_fail = "5558675302" +delivered = "5558675309" delivered_email = "delivered@simulator.notify" perm_fail_email = "perm-fail@simulator.notify" @@ -22,22 +22,8 @@ temp_fail_email = "temp-fail@simulator.notify" def send_sms_response(provider, reference, to): - if provider == "mmg": - body = mmg_callback(reference, to) - headers = {"Content-type": "application/json"} - else: - headers = {"Content-type": "application/x-www-form-urlencoded"} - body = firetext_callback(reference, to) - # to simulate getting a temporary_failure from firetext - # we need to send a pending status updated then a permanent-failure - if body['status'] == '2': # pending status - make_request(SMS_TYPE, provider, body, headers) - # 1 is a declined status for firetext, will result in a temp-failure - body = {'mobile': to, - 'status': "1", - 'time': '2016-03-10 14:17:00', - 'reference': reference - } + body = sns_callback(reference, to) + headers = {"Content-type": "application/json"} make_request(SMS_TYPE, provider, body, headers) @@ -78,44 +64,25 @@ def make_request(notification_type, provider, data, headers): return response.json() -def mmg_callback(notification_id, to): - """ - status: 3 - delivered - status: 4 - expired (temp failure) - status: 5 - rejected (perm failure) - """ +def sns_callback(notification_id, to): + raise Exception("Need to update for SNS callback format along with test_send_to_providers") - if to.strip().endswith(temp_fail): - status = "4" - elif to.strip().endswith(perm_fail): - status = "5" - else: - status = "3" + # example from mmg_callback + # if to.strip().endswith(temp_fail): + # # status: 4 - expired (temp failure) + # status = "4" + # elif to.strip().endswith(perm_fail): + # # status: 5 - rejected (perm failure) + # status = "5" + # else: + # # status: 3 - delivered + # status = "3" - return json.dumps({"reference": "mmg_reference", - "CID": str(notification_id), - "MSISDN": to, - "status": status, - "deliverytime": "2016-04-05 16:01:07"}) - - -def firetext_callback(notification_id, to): - """ - status: 0 - delivered - status: 1 - perm failure - """ - if to.strip().endswith(perm_fail): - status = "1" - elif to.strip().endswith(temp_fail): - status = "2" - else: - status = "0" - return { - 'mobile': to, - 'status': status, - 'time': '2016-03-10 14:17:00', - 'reference': notification_id - } + # return json.dumps({"reference": "mmg_reference", + # "CID": str(notification_id), + # "MSISDN": to, + # "status": status, + # "deliverytime": "2016-04-05 16:01:07"}) @notify_celery.task(bind=True, name="create-fake-letter-response-file", max_retries=5, default_retry_delay=300) diff --git a/tests/app/celery/test_research_mode_tasks.py b/tests/app/celery/test_research_mode_tasks.py index 7472917d5..c9e42f62e 100644 --- a/tests/app/celery/test_research_mode_tasks.py +++ b/tests/app/celery/test_research_mode_tasks.py @@ -9,11 +9,10 @@ from freezegun import freeze_time from app.celery.research_mode_tasks import ( HTTPError, create_fake_letter_response_file, - firetext_callback, - mmg_callback, send_email_response, send_sms_response, ses_notification_callback, + sns_callback, ) from app.config import QueueNames from tests.conftest import Matcher, set_config_values @@ -24,22 +23,24 @@ dvla_response_file_matcher = Matcher( ) -def test_make_mmg_callback(notify_api, rmock): - endpoint = "http://localhost:6011/notifications/sms/mmg" +@pytest.mark.skip(reason="Re-enable when SMS receipts exist") +def test_make_sns_callback(notify_api, rmock): + endpoint = "http://localhost:6011/notifications/sms/sns" rmock.request( "POST", endpoint, json={"status": "success"}, status_code=200) - send_sms_response("mmg", "1234", "07700900001") + send_sms_response("sns", "1234", "5558675309") assert rmock.called assert rmock.request_history[0].url == endpoint - assert json.loads(rmock.request_history[0].text)['MSISDN'] == '07700900001' + assert json.loads(rmock.request_history[0].text)['MSISDN'] == '5558675309' +@pytest.mark.skip(reason="Re-enable when SMS receipts exist") def test_callback_logs_on_api_call_failure(notify_api, rmock, mocker): - endpoint = "http://localhost:6011/notifications/sms/mmg" + endpoint = "http://localhost:6011/notifications/sms/sns" rmock.request( "POST", endpoint, @@ -57,23 +58,6 @@ def test_callback_logs_on_api_call_failure(notify_api, rmock, mocker): ) -@pytest.mark.parametrize("phone_number", - ["07700900001", "07700900002", "07700900003", - "07700900236"]) -def test_make_firetext_callback(notify_api, rmock, phone_number): - endpoint = "http://localhost:6011/notifications/sms/firetext" - rmock.request( - "POST", - endpoint, - json="some data", - status_code=200) - send_sms_response("firetext", "1234", phone_number) - - assert rmock.called - assert rmock.request_history[0].url == endpoint - assert 'mobile={}'.format(phone_number) in rmock.request_history[0].text - - def test_make_ses_callback(notify_api, mocker): mock_task = mocker.patch('app.celery.research_mode_tasks.process_ses_results') some_ref = str(uuid.uuid4()) @@ -84,55 +68,36 @@ def test_make_ses_callback(notify_api, mocker): assert mock_task.apply_async.call_args[0][0][0] == ses_notification_callback(some_ref) -@pytest.mark.parametrize("phone_number", ["07700900001", "+447700900001", "7700900001", "+44 7700900001", - "+447700900236"]) -def test_delivered_mmg_callback(phone_number): - data = json.loads(mmg_callback("1234", phone_number)) +@pytest.mark.skip(reason="Re-enable when SNS delivery receipts exist") +def test_delievered_sns_callback(): + phone_number = "5558675309" + data = json.loads(sns_callback("1234", phone_number)) assert data['MSISDN'] == phone_number assert data['status'] == "3" - assert data['reference'] == "mmg_reference" + assert data['reference'] == "sns_reference" assert data['CID'] == "1234" -@pytest.mark.parametrize("phone_number", ["07700900002", "+447700900002", "7700900002", "+44 7700900002"]) -def test_perm_failure_mmg_callback(phone_number): - data = json.loads(mmg_callback("1234", phone_number)) +@pytest.mark.skip(reason="Re-enable when SNS delivery receipts exist") +def test_perm_failure_sns_callback(): + phone_number = "5558675302" + data = json.loads(sns_callback("1234", phone_number)) assert data['MSISDN'] == phone_number assert data['status'] == "5" - assert data['reference'] == "mmg_reference" + assert data['reference'] == "sns_reference" assert data['CID'] == "1234" -@pytest.mark.parametrize("phone_number", ["07700900003", "+447700900003", "7700900003", "+44 7700900003"]) -def test_temp_failure_mmg_callback(phone_number): - data = json.loads(mmg_callback("1234", phone_number)) +@pytest.mark.skip(reason="Re-enable when SNS delivery receipts exist") +def test_temp_failure_sns_callback(): + phone_number = "5558675303" + data = json.loads(sns_callback("1234", phone_number)) assert data['MSISDN'] == phone_number assert data['status'] == "4" - assert data['reference'] == "mmg_reference" + assert data['reference'] == "sns_reference" assert data['CID'] == "1234" -@pytest.mark.parametrize("phone_number", ["07700900001", "+447700900001", "7700900001", "+44 7700900001", - "+447700900256"]) -def test_delivered_firetext_callback(phone_number): - assert firetext_callback('1234', phone_number) == { - 'mobile': phone_number, - 'status': '0', - 'time': '2016-03-10 14:17:00', - 'reference': '1234' - } - - -@pytest.mark.parametrize("phone_number", ["07700900002", "+447700900002", "7700900002", "+44 7700900002"]) -def test_failure_firetext_callback(phone_number): - assert firetext_callback('1234', phone_number) == { - 'mobile': phone_number, - 'status': '1', - 'time': '2016-03-10 14:17:00', - 'reference': '1234' - } - - @freeze_time("2018-01-25 14:00:30") @pytest.mark.skip(reason="Skipping letter-related functionality for now") def test_create_fake_letter_response_file_uploads_response_file_s3(