diff --git a/app/service/rest.py b/app/service/rest.py index 4790e0113..3d2dc2827 100644 --- a/app/service/rest.py +++ b/app/service/rest.py @@ -116,7 +116,9 @@ def get_platform_stats(): end_date=end_date, include_from_test_key=include_from_test_key ) - result = jsonify(data) + stats = statistics.format_statistics(data) + + result = jsonify(stats) return result diff --git a/tests/app/service/test_rest.py b/tests/app/service/test_rest.py index 0ce87e341..72cfb2cd8 100644 --- a/tests/app/service/test_rest.py +++ b/tests/app/service/test_rest.py @@ -2798,3 +2798,28 @@ def test_get_platform_stats(client, notify_db_session): ['sms', 'delivered', 3], ['sms', 'sending', 1], ['letter', 'sending', 2]] + + +def test_get_platform_stats_creates_zero_stats(client, notify_db_session): + service_1 = create_service(service_name='Service 1') + service_2 = create_service(service_name='Service 2') + sms_template = create_template(service=service_1) + email_template = create_template(service=service_2, template_type=EMAIL_TYPE) + letter_template = create_template(service=service_2, template_type=LETTER_TYPE) + create_notification(template=sms_template, status='sending') + create_notification(template=sms_template, status='delivered') + create_notification(template=sms_template, status='delivered') + create_notification(template=sms_template, status='delivered') + create_notification(template=email_template, status='temporary-failure') + create_notification(template=email_template, status='delivered') + + response = client.get('/service/platform-stats', + headers=[('Content-Type', 'application/json'), create_authorization_header()] + ) + assert response.status_code == 200 + json_resp = json.loads(response.get_data(as_text=True)) + print(json_resp) + assert json_resp == {'email': {'failed': 1, 'requested': 2, 'delivered': 1}, + 'sms': {'failed': 0, 'requested': 4, 'delivered': 3}, + 'letter': {'failed': 0, 'requested': 0, 'delivered': 0} + }