diff --git a/tests/app/platform_stats/test_rest.py b/tests/app/platform_stats/test_rest.py index 601923062..91474171e 100644 --- a/tests/app/platform_stats/test_rest.py +++ b/tests/app/platform_stats/test_rest.py @@ -2,6 +2,9 @@ from datetime import date, datetime from freezegun import freeze_time +from app.models import SMS_TYPE, EMAIL_TYPE +from tests.app.db import create_service, create_template, create_ft_notification_status, create_notification + @freeze_time('2018-06-01') def test_get_platform_stats_uses_todays_date_if_no_start_or_end_date_is_provided(admin_request, mocker): @@ -35,3 +38,37 @@ def test_get_platform_stats_validates_the_date(admin_request): assert response['errors'][0]['message'] == 'start_date time data {} does not match format %Y-%m-%d'.format( start_date) + + +@freeze_time('2018-10-31 14:00') +def test_get_platform_stats_with_real_query(admin_request, notify_db_session): + service_1 = create_service(service_name='service_1') + sms_template = create_template(service=service_1, template_type=SMS_TYPE) + email_template = create_template(service=service_1, template_type=EMAIL_TYPE) + create_ft_notification_status(date(2018, 10, 29), 'sms', service_1, count=10) + create_ft_notification_status(date(2018, 10, 29), 'email', service_1, count=3) + + create_notification(sms_template, created_at=datetime(2018, 10, 31, 11, 0, 0), key_type='test') + create_notification(sms_template, created_at=datetime(2018, 10, 31, 12, 0, 0), status='delivered') + create_notification(email_template, created_at=datetime(2018, 10, 31, 13, 0, 0), status='delivered') + + response = admin_request.get( + 'platform_stats.get_platform_stats', start_date=date(2018, 10, 29), + ) + assert response == { + 'email': { + 'failures': { + 'virus-scan-failed': 0, 'temporary-failure': 0, 'permanent-failure': 0, 'technical-failure': 0}, + 'total': 4, 'test-key': 0 + }, + 'letter': { + 'failures': { + 'virus-scan-failed': 0, 'temporary-failure': 0, 'permanent-failure': 0, 'technical-failure': 0}, + 'total': 0, 'test-key': 0 + }, + 'sms': { + 'failures': { + 'virus-scan-failed': 0, 'temporary-failure': 0, 'permanent-failure': 0, 'technical-failure': 0}, + 'total': 11, 'test-key': 1 + } + }