Files
notifications-api/tests/app/performance_dashboard/test_rest.py
Cliff Hill 287dcd6a46 More cleanup happening.
Signed-off-by: Cliff Hill <Clifford.hill@gsa.gov>
2024-02-28 12:51:35 -05:00

104 lines
3.1 KiB
Python

from datetime import date
from app.enums import TemplateType
from tests.app.db import (
create_ft_notification_status,
create_process_time,
create_template,
)
def test_performance_dashboard(sample_service, admin_request):
template_sms = create_template(
service=sample_service,
template_type=TemplateType.SMS,
template_name="a",
)
template_email = create_template(
service=sample_service,
template_type=TemplateType.EMAIL,
template_name="b",
)
create_ft_notification_status(
local_date=date(2021, 2, 28),
service=template_email.service,
template=template_email,
count=10,
)
create_ft_notification_status(
local_date=date(2021, 2, 28),
service=template_sms.service,
template=template_sms,
count=5,
)
create_ft_notification_status(
local_date=date(2021, 3, 1),
service=template_email.service,
template=template_email,
count=15,
)
create_ft_notification_status(
local_date=date(2021, 3, 1),
service=template_sms.service,
template=template_sms,
count=20,
)
create_ft_notification_status(
local_date=date(2021, 3, 2),
service=template_email.service,
template=template_email,
count=25,
)
create_ft_notification_status(
local_date=date(2021, 3, 2),
service=template_sms.service,
template=template_sms,
count=30,
)
create_ft_notification_status(
local_date=date(2021, 3, 3),
service=template_email.service,
template=template_email,
count=45,
)
create_ft_notification_status(
local_date=date(2021, 3, 3),
service=template_sms.service,
template=template_sms,
count=35,
)
create_process_time(
local_date="2021-02-28", messages_total=15, messages_within_10_secs=14
)
create_process_time(
local_date="2021-03-01", messages_total=35, messages_within_10_secs=34
)
create_process_time(
local_date="2021-03-02", messages_total=15, messages_within_10_secs=12
)
create_process_time(
local_date="2021-03-03", messages_total=15, messages_within_10_secs=14
)
results = admin_request.get(
endpoint="performance_dashboard.get_performance_dashboard",
start_date="2021-03-01",
end_date="2021-03-02",
)
assert results["total_notifications"] == 185
assert results["email_notifications"] == 10 + 15 + 25 + 45
assert results["sms_notifications"] == 5 + 20 + 30 + 35
assert results["notifications_by_type"] == [
{"date": "2021-03-01", "emails": 15, "sms": 20},
{"date": "2021-03-02", "emails": 25, "sms": 30},
]
assert results["processing_time"] == [
{"date": "2021-03-01", "percentage_under_10_seconds": 97.14285714285714},
{"date": "2021-03-02", "percentage_under_10_seconds": 80.0},
]
assert results["live_service_count"] == 1
assert results["services_using_notify"][0]["service_name"] == sample_service.name
assert not results["services_using_notify"][0]["organization_name"]