fixing tests

This commit is contained in:
jimmoffet
2022-10-03 17:16:59 -07:00
parent c7ccc3b0dd
commit c04d1df6b3
14 changed files with 279 additions and 294 deletions

View File

@@ -2,17 +2,17 @@ from datetime import datetime
from urllib.parse import unquote
import iso8601
from flask import Blueprint, abort, current_app, jsonify, request, json
from flask import Blueprint, abort, current_app, json, jsonify, request
from gds_metrics.metrics import Counter
from notifications_utils.recipients import try_validate_and_format_phone_number
from app.celery import tasks
from app.celery.validate_sns_message import sns_notification_handler
from app.config import QueueNames
from app.dao.inbound_sms_dao import dao_create_inbound_sms
from app.dao.services_dao import dao_fetch_service_by_inbound_number
from app.errors import register_errors, InvalidRequest
from app.errors import InvalidRequest, register_errors
from app.models import INBOUND_SMS_TYPE, SMS_TYPE, InboundSms
from app.notifications.sns_handlers import sns_notification_handler
receive_notifications_blueprint = Blueprint('receive_notifications', __name__)
register_errors(receive_notifications_blueprint)
@@ -83,90 +83,90 @@ def receive_sns_sms():
), 200
@receive_notifications_blueprint.route('/notifications/sms/receive/mmg', methods=['POST'])
def receive_mmg_sms():
"""
{
'MSISDN': '447123456789'
'Number': '40604',
'Message': 'some+uri+encoded+message%3A',
'ID': 'SOME-MMG-SPECIFIC-ID',
'DateRecieved': '2017-05-21+11%3A56%3A11'
}
"""
post_data = request.get_json()
# @receive_notifications_blueprint.route('/notifications/sms/receive/mmg', methods=['POST'])
# def receive_mmg_sms():
# """
# {
# 'MSISDN': '447123456789'
# 'Number': '40604',
# 'Message': 'some+uri+encoded+message%3A',
# 'ID': 'SOME-MMG-SPECIFIC-ID',
# 'DateRecieved': '2017-05-21+11%3A56%3A11'
# }
# """
# post_data = request.get_json()
auth = request.authorization
# auth = request.authorization
if not auth:
current_app.logger.warning("Inbound sms (MMG) no auth header")
abort(401)
elif auth.username not in current_app.config['MMG_INBOUND_SMS_USERNAME'] \
or auth.password not in current_app.config['MMG_INBOUND_SMS_AUTH']:
current_app.logger.warning("Inbound sms (MMG) incorrect username ({}) or password".format(auth.username))
abort(403)
# if not auth:
# current_app.logger.warning("Inbound sms (MMG) no auth header")
# abort(401)
# elif auth.username not in current_app.config['MMG_INBOUND_SMS_USERNAME'] \
# or auth.password not in current_app.config['MMG_INBOUND_SMS_AUTH']:
# current_app.logger.warning("Inbound sms (MMG) incorrect username ({}) or password".format(auth.username))
# abort(403)
inbound_number = strip_leading_forty_four(post_data['Number'])
# inbound_number = strip_leading_forty_four(post_data['Number'])
service = fetch_potential_service(inbound_number, 'mmg')
if not service:
# since this is an issue with our service <-> number mapping, or no inbound_sms service permission
# we should still tell MMG that we received it successfully
return 'RECEIVED', 200
# service = fetch_potential_service(inbound_number, 'mmg')
# if not service:
# # since this is an issue with our service <-> number mapping, or no inbound_sms service permission
# # we should still tell MMG that we received it successfully
# return 'RECEIVED', 200
INBOUND_SMS_COUNTER.labels("mmg").inc()
# INBOUND_SMS_COUNTER.labels("mmg").inc()
inbound = create_inbound_sms_object(service,
content=format_mmg_message(post_data["Message"]),
from_number=post_data['MSISDN'],
provider_ref=post_data["ID"],
date_received=post_data.get('DateRecieved'),
provider_name="mmg")
# inbound = create_inbound_sms_object(service,
# content=format_mmg_message(post_data["Message"]),
# from_number=post_data['MSISDN'],
# provider_ref=post_data["ID"],
# date_received=post_data.get('DateRecieved'),
# provider_name="mmg")
tasks.send_inbound_sms_to_service.apply_async([str(inbound.id), str(service.id)], queue=QueueNames.NOTIFY)
# tasks.send_inbound_sms_to_service.apply_async([str(inbound.id), str(service.id)], queue=QueueNames.NOTIFY)
current_app.logger.debug(
'{} received inbound SMS with reference {} from MMG'.format(service.id, inbound.provider_reference))
return jsonify({
"status": "ok"
}), 200
# current_app.logger.debug(
# '{} received inbound SMS with reference {} from MMG'.format(service.id, inbound.provider_reference))
# return jsonify({
# "status": "ok"
# }), 200
@receive_notifications_blueprint.route('/notifications/sms/receive/firetext', methods=['POST'])
def receive_firetext_sms():
post_data = request.form
# @receive_notifications_blueprint.route('/notifications/sms/receive/firetext', methods=['POST'])
# def receive_firetext_sms():
# post_data = request.form
auth = request.authorization
if not auth:
current_app.logger.warning("Inbound sms (Firetext) no auth header")
abort(401)
elif auth.username != 'notify' or auth.password not in current_app.config['FIRETEXT_INBOUND_SMS_AUTH']:
current_app.logger.warning("Inbound sms (Firetext) incorrect username ({}) or password".format(auth.username))
abort(403)
# auth = request.authorization
# if not auth:
# current_app.logger.warning("Inbound sms (Firetext) no auth header")
# abort(401)
# elif auth.username != 'notify' or auth.password not in current_app.config['FIRETEXT_INBOUND_SMS_AUTH']:
# current_app.logger.warning("Inbound sms (Firetext) incorrect username ({}) or password".format(auth.username))
# abort(403)
inbound_number = strip_leading_forty_four(post_data['destination'])
# inbound_number = strip_leading_forty_four(post_data['destination'])
service = fetch_potential_service(inbound_number, 'firetext')
if not service:
return jsonify({
"status": "ok"
}), 200
# service = fetch_potential_service(inbound_number, 'firetext')
# if not service:
# return jsonify({
# "status": "ok"
# }), 200
inbound = create_inbound_sms_object(service=service,
content=post_data["message"],
from_number=post_data['source'],
provider_ref=None,
date_received=post_data['time'],
provider_name="firetext")
# inbound = create_inbound_sms_object(service=service,
# content=post_data["message"],
# from_number=post_data['source'],
# provider_ref=None,
# date_received=post_data['time'],
# provider_name="firetext")
INBOUND_SMS_COUNTER.labels("firetext").inc()
# INBOUND_SMS_COUNTER.labels("firetext").inc()
tasks.send_inbound_sms_to_service.apply_async([str(inbound.id), str(service.id)], queue=QueueNames.NOTIFY)
current_app.logger.debug(
'{} received inbound SMS with reference {} from Firetext'.format(service.id, inbound.provider_reference))
return jsonify({
"status": "ok"
}), 200
# tasks.send_inbound_sms_to_service.apply_async([str(inbound.id), str(service.id)], queue=QueueNames.NOTIFY)
# current_app.logger.debug(
# '{} received inbound SMS with reference {} from Firetext'.format(service.id, inbound.provider_reference))
# return jsonify({
# "status": "ok"
# }), 200
def format_mmg_message(message):