fix tests

This commit is contained in:
Kenneth Kehl
2023-11-03 08:28:21 -07:00
parent 7d2dc776b9
commit 9c841320ca
6 changed files with 29 additions and 15 deletions

View File

@@ -1,7 +1,6 @@
import json
import os
import re
import time
from datetime import datetime, timedelta
from boto3 import client
@@ -51,25 +50,30 @@ class AwsCloudwatchClient(Client):
def _get_log(self, my_filter, log_group_name, sent_at):
# Check all cloudwatch logs from the time the notification was sent (currently 5 minutes previously) until now
now = round(time.time() * 1000)
now = datetime.utcnow()
beginning = sent_at
next_token = None
all_log_events = []
current_app.logger.info(f"START TIME {beginning} END TIME {now}")
# There has been a change somewhere and the time range we were previously using has become too
# narrow or wrong in some way, so events can't be found. For the time being, adjust by adding
# a buffer on each side of 12 hours.
TWELVE_HOURS = 12 * 60 * 60 * 1000
while True:
if next_token:
response = self._client.filter_log_events(
logGroupName=log_group_name,
filterPattern=my_filter,
nextToken=next_token,
startTime=int(beginning.timestamp() * 1000),
endTime=now,
startTime=int(beginning.timestamp() * 1000) - TWELVE_HOURS,
endTime=int(now.timestamp() * 1000) + TWELVE_HOURS,
)
else:
response = self._client.filter_log_events(
logGroupName=log_group_name,
filterPattern=my_filter,
startTime=int(beginning.timestamp() * 1000),
endTime=now,
startTime=int(beginning.timestamp() * 1000) - TWELVE_HOURS,
endTime=int(now.timestamp() * 1000) + TWELVE_HOURS,
)
log_events = response.get("events", [])
all_log_events.extend(log_events)
@@ -87,6 +91,7 @@ class AwsCloudwatchClient(Client):
return account_number
def check_sms(self, message_id, notification_id, created_at):
current_app.logger.info(f"CREATED AT = {created_at}")
region = cloud_config.sns_region
# TODO this clumsy approach to getting the account number will be fixed as part of notify-api #258
account_number = self._extract_account_number(cloud_config.ses_domain_arn)
@@ -128,7 +133,7 @@ class AwsCloudwatchClient(Client):
if time_now > (created_at + timedelta(hours=3)):
# see app/models.py Notification. This message corresponds to "permanent-failure",
# but we are copy/pasting here to avoid circular imports.
return "failure", "Unable to find carrier response.", "unknown"
return "failure", "Unable to find carrier response."
raise NotificationTechnicalFailureException(
f"No event found for message_id {message_id} notification_id {notification_id}"
)

View File

@@ -304,12 +304,17 @@ def _filter_query(query, filter_dict=None):
return query
def sanitize_successful_notification_by_id(notification_id, provider_response):
def sanitize_successful_notification_by_id(notification_id, carrier, provider_response):
update_query = """
update notifications set provider_response=:response, notification_status='delivered', "to"='1', normalised_to='1'
update notifications set provider_response=:response, carrier=:carrier,
notification_status='delivered', "to"='1', normalised_to='1'
where id=:notification_id
"""
input_params = {"notification_id": notification_id, "response": provider_response}
input_params = {
"notification_id": notification_id,
"carrier": carrier,
"response": provider_response,
}
db.session.execute(update_query, input_params)
db.session.commit()

View File

@@ -554,8 +554,8 @@ class Service(db.Model, Versioned):
def get_default_sms_sender(self):
default_sms_sender = [x for x in self.service_sms_senders if x.is_default]
return "sns"
# return default_sms_sender[0].sms_sender
# return "sns"
return default_sms_sender[0].sms_sender
def get_default_reply_to_email_address(self):
default_reply_to = [x for x in self.reply_to_email_addresses if x.is_default]