mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-18 16:12:32 -05:00
104 lines
3.1 KiB
Python
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"]
|