diff --git a/app/main/views/platform_admin.py b/app/main/views/platform_admin.py
index f0b5983b5..b0a3da7cc 100644
--- a/app/main/views/platform_admin.py
+++ b/app/main/views/platform_admin.py
@@ -5,7 +5,7 @@ from collections import OrderedDict
from datetime import datetime
from io import StringIO
-from flask import Response, abort, flash, render_template, request, url_for
+from flask import Response, abort, flash, render_template, request, session, url_for
from notifications_python_client.errors import HTTPError
from app import (
@@ -25,17 +25,19 @@ from app.main.forms import (
DateFilterForm,
RequiredDateFilterForm,
)
+from app.main.views.send import _send_notification, send_notification
from app.statistics_utils import (
get_formatted_percentage,
get_formatted_percentage_two_dp,
)
+from app.utils import hilite
from app.utils.csv import Spreadsheet
from app.utils.pagination import (
generate_next_dict,
generate_previous_dict,
get_page_from_request,
)
-from app.utils.user import user_is_platform_admin
+from app.utils.user import user_has_permissions, user_is_platform_admin
COMPLAINT_THRESHOLD = 0.02
FAILURE_THRESHOLD = 3
@@ -771,3 +773,40 @@ def _get_user_row(r):
row.append(r["password_changed_at"])
row.append(r["state"])
return row
+
+
+@main.route(
+ "/platform-admin/load-test",
+ methods=["POST", "GET"],
+)
+@user_is_platform_admin
+def load_test():
+ # SIMULATED_SMS_NUMBERS = ("+14254147755", "+14254147167")
+ print(hilite("ENTER LOAD TEST"))
+ session["recipient"] = "+14254147755"
+ session["placeholders"] = {"day of week": "Monday", "color": "blue"}
+ services = service_api_client.find_services_by_name("Test service")
+ services = services["data"]
+
+ for service in services:
+ # print(hilite(f"WHAT IS THE TYPE OF ONE SERVICE {type(service)} {service}"))
+ # print("\n")
+ # service = json.loads(service)
+ # print(hilite(f"SERVICE: {service}"))
+ # service = service['data']
+ if service["name"] is "Test service":
+ break
+ # print(hilite(f"SERVICE IS {service}"))
+ templates = service_api_client.get_service_templates(service["id"])
+ templates = templates["data"]
+ # templates = json.loads(templates)
+ # print(hilite(f"TEMPLATES are {templates}"))
+ example_template = None
+ for template in templates:
+ # template = json.loads(template)
+ print(hilite(f"TEMPLATE {template['name']}"))
+ if template["name"] == "Example text message template":
+ print(hilite(f"FOUND EXAMPLE TEMPLATE"))
+ example_template = template
+ print(f"GOING TO SEND NOTIFICATION NOW")
+ _send_notification(service["id"], example_template["id"])
diff --git a/app/main/views/send.py b/app/main/views/send.py
index e6843da18..dcaec8560 100644
--- a/app/main/views/send.py
+++ b/app/main/views/send.py
@@ -7,6 +7,7 @@ from flask import (
abort,
current_app,
flash,
+ json,
redirect,
render_template,
request,
@@ -942,6 +943,10 @@ def preview_notification(service_id, template_id):
)
@user_has_permissions("send_messages", restrict_admin_usage=True)
def send_notification(service_id, template_id):
+ return _send_notification(service_id, template_id)
+
+
+def _send_notification(service_id, template_id):
scheduled_for = session.pop("scheduled_for", "")
recipient = get_recipient()
if not recipient:
diff --git a/app/templates/views/platform-admin/services.html b/app/templates/views/platform-admin/services.html
index 65f10e281..13b6320dc 100644
--- a/app/templates/views/platform-admin/services.html
+++ b/app/templates/views/platform-admin/services.html
@@ -28,6 +28,10 @@
{% if not service['active'] %}
Archived
{% endif %}
+ {% if service['name'] == 'Test service' %}
+ Load Test
+ {% endif %}
+
{% endcall %}
{% endcall %}
diff --git a/poetry.lock b/poetry.lock
index 2684ecc21..96135cf31 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1285,13 +1285,9 @@ files = [
{file = "lxml-5.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edcfa83e03370032a489430215c1e7783128808fd3e2e0a3225deee278585196"},
{file = "lxml-5.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:28bf95177400066596cdbcfc933312493799382879da504633d16cf60bba735b"},
{file = "lxml-5.2.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a745cc98d504d5bd2c19b10c79c61c7c3df9222629f1b6210c0368177589fb8"},
- {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6"},
{file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b336b0416828022bfd5a2e3083e7f5ba54b96242159f83c7e3eebaec752f1716"},
- {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c"},
{file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:4bc6cb140a7a0ad1f7bc37e018d0ed690b7b6520ade518285dc3171f7a117905"},
- {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184"},
{file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:57f0a0bbc9868e10ebe874e9f129d2917750adf008fe7b9c1598c0fbbfdde6a6"},
- {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f"},
{file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:60499fe961b21264e17a471ec296dcbf4365fbea611bf9e303ab69db7159ce61"},
{file = "lxml-5.2.2-cp37-cp37m-win32.whl", hash = "sha256:d9b342c76003c6b9336a80efcc766748a333573abf9350f4094ee46b006ec18f"},
{file = "lxml-5.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b16db2770517b8799c79aa80f4053cd6f8b716f21f8aca962725a9565ce3ee40"},
@@ -1626,6 +1622,7 @@ files = [
{file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fbb160554e319f7b22ecf530a80a3ff496d38e8e07ae763b9e82fadfe96f273"},
{file = "msgpack-1.0.8-cp39-cp39-win32.whl", hash = "sha256:f9af38a89b6a5c04b7d18c492c8ccf2aee7048aff1ce8437c4683bb5a1df893d"},
{file = "msgpack-1.0.8-cp39-cp39-win_amd64.whl", hash = "sha256:ed59dd52075f8fc91da6053b12e8c89e37aa043f8986efd89e61fae69dc1b011"},
+ {file = "msgpack-1.0.8-py3-none-any.whl", hash = "sha256:24f727df1e20b9876fa6e95f840a2a2651e34c0ad147676356f4bf5fbb0206ca"},
{file = "msgpack-1.0.8.tar.gz", hash = "sha256:95c02b0e27e706e48d0e5426d1710ca78e0f0628d6e89d5b5a5b91a5f12274f3"},
]