From c36561ee4d86c745135af0fd1184e85595b72205 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Fri, 30 Aug 2024 09:50:01 -0700 Subject: [PATCH] start load test work --- app/main/views/platform_admin.py | 43 ++++++++++++++++++- app/main/views/send.py | 5 +++ .../views/platform-admin/services.html | 4 ++ poetry.lock | 5 +-- 4 files changed, 51 insertions(+), 6 deletions(-) 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"}, ]