mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-02 17:31:14 -05:00
Remove mmg & firetext from research_mode_tasks.py
This commit is contained in:
@@ -12,9 +12,9 @@ from app.celery.process_ses_receipts_tasks import process_ses_results
|
|||||||
from app.config import QueueNames
|
from app.config import QueueNames
|
||||||
from app.models import SMS_TYPE
|
from app.models import SMS_TYPE
|
||||||
|
|
||||||
temp_fail = "7700900003"
|
temp_fail = "5558675303"
|
||||||
perm_fail = "7700900002"
|
perm_fail = "5558675302"
|
||||||
delivered = "7700900001"
|
delivered = "5558675309"
|
||||||
|
|
||||||
delivered_email = "delivered@simulator.notify"
|
delivered_email = "delivered@simulator.notify"
|
||||||
perm_fail_email = "perm-fail@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):
|
def send_sms_response(provider, reference, to):
|
||||||
if provider == "mmg":
|
body = sns_callback(reference, to)
|
||||||
body = mmg_callback(reference, to)
|
headers = {"Content-type": "application/json"}
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
make_request(SMS_TYPE, provider, body, headers)
|
make_request(SMS_TYPE, provider, body, headers)
|
||||||
|
|
||||||
@@ -78,44 +64,25 @@ def make_request(notification_type, provider, data, headers):
|
|||||||
return response.json()
|
return response.json()
|
||||||
|
|
||||||
|
|
||||||
def mmg_callback(notification_id, to):
|
def sns_callback(notification_id, to):
|
||||||
"""
|
raise Exception("Need to update for SNS callback format along with test_send_to_providers")
|
||||||
status: 3 - delivered
|
|
||||||
status: 4 - expired (temp failure)
|
|
||||||
status: 5 - rejected (perm failure)
|
|
||||||
"""
|
|
||||||
|
|
||||||
if to.strip().endswith(temp_fail):
|
# example from mmg_callback
|
||||||
status = "4"
|
# if to.strip().endswith(temp_fail):
|
||||||
elif to.strip().endswith(perm_fail):
|
# # status: 4 - expired (temp failure)
|
||||||
status = "5"
|
# status = "4"
|
||||||
else:
|
# elif to.strip().endswith(perm_fail):
|
||||||
status = "3"
|
# # status: 5 - rejected (perm failure)
|
||||||
|
# status = "5"
|
||||||
|
# else:
|
||||||
|
# # status: 3 - delivered
|
||||||
|
# status = "3"
|
||||||
|
|
||||||
return json.dumps({"reference": "mmg_reference",
|
# return json.dumps({"reference": "mmg_reference",
|
||||||
"CID": str(notification_id),
|
# "CID": str(notification_id),
|
||||||
"MSISDN": to,
|
# "MSISDN": to,
|
||||||
"status": status,
|
# "status": status,
|
||||||
"deliverytime": "2016-04-05 16:01:07"})
|
# "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
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@notify_celery.task(bind=True, name="create-fake-letter-response-file", max_retries=5, default_retry_delay=300)
|
@notify_celery.task(bind=True, name="create-fake-letter-response-file", max_retries=5, default_retry_delay=300)
|
||||||
|
|||||||
@@ -9,11 +9,10 @@ from freezegun import freeze_time
|
|||||||
from app.celery.research_mode_tasks import (
|
from app.celery.research_mode_tasks import (
|
||||||
HTTPError,
|
HTTPError,
|
||||||
create_fake_letter_response_file,
|
create_fake_letter_response_file,
|
||||||
firetext_callback,
|
|
||||||
mmg_callback,
|
|
||||||
send_email_response,
|
send_email_response,
|
||||||
send_sms_response,
|
send_sms_response,
|
||||||
ses_notification_callback,
|
ses_notification_callback,
|
||||||
|
sns_callback,
|
||||||
)
|
)
|
||||||
from app.config import QueueNames
|
from app.config import QueueNames
|
||||||
from tests.conftest import Matcher, set_config_values
|
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):
|
@pytest.mark.skip(reason="Re-enable when SMS receipts exist")
|
||||||
endpoint = "http://localhost:6011/notifications/sms/mmg"
|
def test_make_sns_callback(notify_api, rmock):
|
||||||
|
endpoint = "http://localhost:6011/notifications/sms/sns"
|
||||||
rmock.request(
|
rmock.request(
|
||||||
"POST",
|
"POST",
|
||||||
endpoint,
|
endpoint,
|
||||||
json={"status": "success"},
|
json={"status": "success"},
|
||||||
status_code=200)
|
status_code=200)
|
||||||
send_sms_response("mmg", "1234", "07700900001")
|
send_sms_response("sns", "1234", "5558675309")
|
||||||
|
|
||||||
assert rmock.called
|
assert rmock.called
|
||||||
assert rmock.request_history[0].url == endpoint
|
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):
|
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(
|
rmock.request(
|
||||||
"POST",
|
"POST",
|
||||||
endpoint,
|
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):
|
def test_make_ses_callback(notify_api, mocker):
|
||||||
mock_task = mocker.patch('app.celery.research_mode_tasks.process_ses_results')
|
mock_task = mocker.patch('app.celery.research_mode_tasks.process_ses_results')
|
||||||
some_ref = str(uuid.uuid4())
|
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)
|
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",
|
@pytest.mark.skip(reason="Re-enable when SNS delivery receipts exist")
|
||||||
"+447700900236"])
|
def test_delievered_sns_callback():
|
||||||
def test_delivered_mmg_callback(phone_number):
|
phone_number = "5558675309"
|
||||||
data = json.loads(mmg_callback("1234", phone_number))
|
data = json.loads(sns_callback("1234", phone_number))
|
||||||
assert data['MSISDN'] == phone_number
|
assert data['MSISDN'] == phone_number
|
||||||
assert data['status'] == "3"
|
assert data['status'] == "3"
|
||||||
assert data['reference'] == "mmg_reference"
|
assert data['reference'] == "sns_reference"
|
||||||
assert data['CID'] == "1234"
|
assert data['CID'] == "1234"
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("phone_number", ["07700900002", "+447700900002", "7700900002", "+44 7700900002"])
|
@pytest.mark.skip(reason="Re-enable when SNS delivery receipts exist")
|
||||||
def test_perm_failure_mmg_callback(phone_number):
|
def test_perm_failure_sns_callback():
|
||||||
data = json.loads(mmg_callback("1234", phone_number))
|
phone_number = "5558675302"
|
||||||
|
data = json.loads(sns_callback("1234", phone_number))
|
||||||
assert data['MSISDN'] == phone_number
|
assert data['MSISDN'] == phone_number
|
||||||
assert data['status'] == "5"
|
assert data['status'] == "5"
|
||||||
assert data['reference'] == "mmg_reference"
|
assert data['reference'] == "sns_reference"
|
||||||
assert data['CID'] == "1234"
|
assert data['CID'] == "1234"
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("phone_number", ["07700900003", "+447700900003", "7700900003", "+44 7700900003"])
|
@pytest.mark.skip(reason="Re-enable when SNS delivery receipts exist")
|
||||||
def test_temp_failure_mmg_callback(phone_number):
|
def test_temp_failure_sns_callback():
|
||||||
data = json.loads(mmg_callback("1234", phone_number))
|
phone_number = "5558675303"
|
||||||
|
data = json.loads(sns_callback("1234", phone_number))
|
||||||
assert data['MSISDN'] == phone_number
|
assert data['MSISDN'] == phone_number
|
||||||
assert data['status'] == "4"
|
assert data['status'] == "4"
|
||||||
assert data['reference'] == "mmg_reference"
|
assert data['reference'] == "sns_reference"
|
||||||
assert data['CID'] == "1234"
|
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")
|
@freeze_time("2018-01-25 14:00:30")
|
||||||
@pytest.mark.skip(reason="Skipping letter-related functionality for now")
|
@pytest.mark.skip(reason="Skipping letter-related functionality for now")
|
||||||
def test_create_fake_letter_response_file_uploads_response_file_s3(
|
def test_create_fake_letter_response_file_uploads_response_file_s3(
|
||||||
|
|||||||
Reference in New Issue
Block a user