fix tests maybe

This commit is contained in:
Kenneth Kehl
2024-09-03 10:37:05 -07:00
parent 9e9ba9186a
commit ddf9c6d3ec
5 changed files with 35 additions and 19 deletions

View File

@@ -169,7 +169,7 @@
"filename": "app/config.py",
"hashed_secret": "577a4c667e4af8682ca431857214b3a920883efc",
"is_verified": false,
"line_number": 117,
"line_number": 118,
"is_secret": false
}
],
@@ -692,5 +692,5 @@
}
]
},
"generated_at": "2024-08-20T14:14:36Z"
"generated_at": "2024-09-03T17:36:57Z"
}

View File

@@ -8,6 +8,7 @@ from notifications_utils import DAILY_MESSAGE_LIMIT
class Config(object):
SIMULATED_SMS_NUMBERS = ("+14254147755", "+14254147167")
NOTIFY_APP_NAME = "admin"
NOTIFY_ENVIRONMENT = getenv("NOTIFY_ENVIRONMENT", "development")
API_HOST_NAME = getenv("API_HOST_NAME", "localhost")

View File

@@ -10,6 +10,7 @@ from flask import (
abort,
current_app,
flash,
redirect,
render_template,
request,
session,
@@ -34,6 +35,7 @@ from app.main.forms import (
DateFilterForm,
RequiredDateFilterForm,
)
from app.main.views.dashboard import get_dashboard_partials
from app.main.views.send import _send_notification
from app.statistics_utils import (
get_formatted_percentage,
@@ -794,29 +796,31 @@ def load_test():
the platform admin a member of this service if the platform is not already. All
messagese will be sent in this service.
"""
# SIMULATED_SMS_NUMBERS = ("+14254147755", "+14254147167")
service = _find_load_test_service()
_prepare_load_test_service(service)
example_template = _find_example_template(service)
for _ in range(0, 3):
session["recipient"] = "+14254147755"
# Simulated success
for _ in range(0, 250):
session["recipient"] = current_app.config["SIMULATED_SMS_NUMBERS"][0]
session["placeholders"] = {
"day of week": "Monday",
"color": "blue",
"phone number": "+14254147755",
"phone number": current_app.config["SIMULATED_SMS_NUMBERS"][0],
}
_send_notification(service["id"], example_template["id"])
for _ in range(0, 3):
session["recipient"] = "+14254147167"
# Simulated failure
for _ in range(0, 250):
session["recipient"] = current_app.config["SIMULATED_SMS_NUMBERS"][1]
session["placeholders"] = {
"day of week": "Monday",
"color": "blue",
"phone number": "+14254147167",
"day of week": "Wednesday",
"color": "orange",
"phone number": current_app.config["SIMULATED_SMS_NUMBERS"][1],
}
_send_notification(service["id"], example_template["id"])
return render_template("views/dashboard/dashboard.html")
# For now, just hang out on the platform admin page
return redirect(request.referrer)
def _find_example_template(service):

View File

@@ -1,3 +1,4 @@
import os
import time
import uuid
from string import ascii_uppercase
@@ -1032,12 +1033,16 @@ def _send_notification(service_id, template_id):
)
)
form = CsvUploadForm()
form.file.data = my_data
form.file.name = filename
check_message_output = check_messages(service_id, template_id, upload_id, 2)
if "You cannot send to" in check_message_output:
return check_messages(service_id, template_id, upload_id, 2)
# For load testing we want to skip these checks. They are doing some fine-grained
# comparison about what is in the preview, but the load test just blast messages
# and doesn't care about the preview.
if os.getenv("NOTIFY_ENVIRONMENT") not in ("development", "staging", "demo"):
form = CsvUploadForm()
form.file.data = my_data
form.file.name = filename
check_message_output = check_messages(service_id, template_id, upload_id, 2)
if "You cannot send to" in check_message_output:
return check_messages(service_id, template_id, upload_id, 2)
job_api_client.create_job(
upload_id,

View File

@@ -1,3 +1,4 @@
import os
from datetime import datetime
from flask import abort, current_app, request, session
@@ -219,7 +220,12 @@ class User(JSONModel, UserMixin):
def has_permissions(
self, *permissions, restrict_admin_usage=False, allow_org_user=False
):
if self.platform_admin and restrict_admin_usage is False:
# TODO need this for load test, but breaks unit tests
if self.platform_admin and os.getenv("NOTIFY_ENVIRONMENT") in (
"development",
"staging",
"demo",
):
return True
unknown_permissions = set(permissions) - all_ui_permissions