diff --git a/app/job/rest.py b/app/job/rest.py index 3e239f14d..f2ec7068a 100644 --- a/app/job/rest.py +++ b/app/job/rest.py @@ -125,11 +125,7 @@ def get_jobs_by_service(service_id): try: limit_days = int(request.args["limit_days"]) except ValueError: - errors = { - "limit_days": [ - f"{request.args['limit_days']} is not an integer" - ] - } + errors = {"limit_days": [f"{request.args['limit_days']} is not an integer"]} raise InvalidRequest(errors, status_code=400) else: limit_days = None diff --git a/app/performance_dashboard/rest.py b/app/performance_dashboard/rest.py index 73b45bd6e..4810dc17b 100644 --- a/app/performance_dashboard/rest.py +++ b/app/performance_dashboard/rest.py @@ -85,7 +85,13 @@ def transform_results_into_totals(total_notifications_results): def transform_into_notification_by_type_json(total_notifications): j = [] for x in total_notifications: - j.append({"date": x.local_date.strftime("%Y-%m-%d"), "emails": x.emails, "sms": x.sms}) + j.append( + { + "date": x.local_date.strftime("%Y-%m-%d"), + "emails": x.emails, + "sms": x.sms, + } + ) return j diff --git a/tests/app/celery/test_reporting_tasks.py b/tests/app/celery/test_reporting_tasks.py index 296d1a1c0..031f4e9b0 100644 --- a/tests/app/celery/test_reporting_tasks.py +++ b/tests/app/celery/test_reporting_tasks.py @@ -475,39 +475,43 @@ def test_create_nightly_notification_status_for_service_and_day(notify_db_sessio assert len(new_fact_data) == 4 - email_delivered_row = new_fact_data[0] - assert email_delivered_row.template_id == second_template.id - assert email_delivered_row.service_id == second_service.id - assert email_delivered_row.notification_type == NotificationType.EMAIL - assert email_delivered_row.notification_status == NotificationStatus.DELIVERED - assert email_delivered_row.notification_count == 1 - assert email_delivered_row.key_type == KeyType.NORMAL + email_delivered = (NotificationType.EMAIL, NotificationStatus.DELIVERED) + email_sending = (NotificationType.EMAIL, NotificationStatus.SENDING) + email_failure = (NotificationType.EMAIL, NotificationStatus.FAILED) + sms_delivered = (NotificationType.SMS, NotificationStatus.DELIVERED) - email_sending_row = new_fact_data[1] - assert email_sending_row.template_id == second_template.id - assert email_sending_row.service_id == second_service.id - assert email_sending_row.notification_type == NotificationType.EMAIL - assert email_sending_row.notification_status == NotificationStatus.FAILED - assert email_sending_row.notification_count == 1 - assert email_sending_row.key_type == KeyType.NORMAL - - email_failure_row = new_fact_data[2] - assert email_failure_row.local_date == process_day - assert email_failure_row.template_id == second_template.id - assert email_failure_row.service_id == second_service.id - assert email_failure_row.job_id == UUID("00000000-0000-0000-0000-000000000000") - assert email_failure_row.notification_type == NotificationType.EMAIL - assert email_failure_row.notification_status == NotificationStatus.SENDING - assert email_failure_row.notification_count == 1 - assert email_failure_row.key_type == KeyType.TEAM - - sms_delivered_row = new_fact_data[3] - assert sms_delivered_row.template_id == first_template.id - assert sms_delivered_row.service_id == first_service.id - assert sms_delivered_row.notification_type == NotificationType.SMS - assert sms_delivered_row.notification_status == NotificationStatus.DELIVERED - assert sms_delivered_row.notification_count == 1 - assert sms_delivered_row.key_type == KeyType.NORMAL + for row in new_fact_data: + current = (row.notification_type, row.notification_status) + if current == email_delivered: + assert row.template_id == second_template.id + assert row.service_id == second_service.id + assert row.notification_type == NotificationType.EMAIL + assert row.notification_status == NotificationStatus.DELIVERED + assert row.notification_count == 1 + assert row.key_type == KeyType.NORMAL + elif current == email_failure: + assert row.template_id == second_template.id + assert row.service_id == second_service.id + assert row.notification_type == NotificationType.EMAIL + assert row.notification_status == NotificationStatus.FAILED + assert row.notification_count == 1 + assert row.key_type == KeyType.NORMAL + elif current == email_sending: + assert row.local_date == process_day + assert row.template_id == second_template.id + assert row.service_id == second_service.id + assert row.job_id == UUID("00000000-0000-0000-0000-000000000000") + assert row.notification_type == NotificationType.EMAIL + assert row.notification_status == NotificationStatus.SENDING + assert row.notification_count == 1 + assert row.key_type == KeyType.TEAM + elif current == sms_delivered: + assert row.template_id == first_template.id + assert row.service_id == first_service.id + assert row.notification_type == NotificationType.SMS + assert row.notification_status == NotificationStatus.DELIVERED + assert row.notification_count == 1 + assert row.key_type == KeyType.NORMAL def test_create_nightly_notification_status_for_service_and_day_overwrites_old_data( diff --git a/tests/app/dao/test_fact_notification_status_dao.py b/tests/app/dao/test_fact_notification_status_dao.py index 24812f5b2..d7d5cc9cb 100644 --- a/tests/app/dao/test_fact_notification_status_dao.py +++ b/tests/app/dao/test_fact_notification_status_dao.py @@ -871,67 +871,72 @@ def test_fetch_monthly_notification_statuses_per_service(notify_db_session): assert len(results) == 5 # column order: date, service_id, service_name, notifaction_type, count_sending, count_delivered, # count_technical_failure, count_temporary_failure, count_permanent_failure, count_sent - assert [x for x in results[0]] == [ - date(2019, 3, 1), - service_two.id, - "service two", - NotificationType.SMS, - 0, - 0, - 0, - 0, - 2, - 0, - ] - assert [x for x in results[1]] == [ - date(2019, 3, 1), - service_one.id, - "service one", - NotificationType.EMAIL, - 5, - 0, - 3, - 0, - 0, - 0, - ] - assert [x for x in results[2]] == [ - date(2019, 3, 1), - service_one.id, - "service one", - NotificationType.SMS, - 0, - 1, - 0, - 0, - 0, - 1, - ] - assert [x for x in results[3]] == [ - date(2019, 4, 1), - service_two.id, - "service two", - NotificationType.SMS, - 0, - 0, - 0, - 10, - 0, - 0, - ] - assert [x for x in results[4]] == [ - date(2019, 4, 1), - service_one.id, - "service one", - NotificationType.SMS, - 0, - 1, - 0, - 0, - 0, - 0, + expected = [ + [ + date(2019, 3, 1), + service_two.id, + "service two", + NotificationType.SMS, + 0, + 0, + 0, + 0, + 2, + 0, + ], + [ + date(2019, 3, 1), + service_one.id, + "service one", + NotificationType.EMAIL, + 5, + 0, + 3, + 0, + 0, + 0, + ], + [ + date(2019, 3, 1), + service_one.id, + "service one", + NotificationType.SMS, + 0, + 1, + 0, + 0, + 0, + 1, + ], + [ + date(2019, 4, 1), + service_two.id, + "service two", + NotificationType.SMS, + 0, + 0, + 0, + 10, + 0, + 0, + ], + [ + date(2019, 4, 1), + service_one.id, + "service one", + NotificationType.SMS, + 0, + 1, + 0, + 0, + 0, + 0, + ], ] + for row in results: + assert [x for x in row] in expected + @freeze_time("2019-04-10 14:00") def test_fetch_monthly_notification_statuses_per_service_for_rows_that_should_be_excluded( diff --git a/tests/app/notifications/test_process_notification.py b/tests/app/notifications/test_process_notification.py index 591ddfaad..52198071a 100644 --- a/tests/app/notifications/test_process_notification.py +++ b/tests/app/notifications/test_process_notification.py @@ -276,9 +276,21 @@ def test_send_notification_to_queue_throws_exception_deletes_notification( [ ("+14254147755", NotificationType.SMS, True), ("+14254147167", NotificationType.SMS, True), - ("simulate-delivered@notifications.service.gov.uk", NotificationType.EMAIL, True), - ("simulate-delivered-2@notifications.service.gov.uk", NotificationType.EMAIL, True), - ("simulate-delivered-3@notifications.service.gov.uk", NotificationType.EMAIL, True), + ( + "simulate-delivered@notifications.service.gov.uk", + NotificationType.EMAIL, + True, + ), + ( + "simulate-delivered-2@notifications.service.gov.uk", + NotificationType.EMAIL, + True, + ), + ( + "simulate-delivered-3@notifications.service.gov.uk", + NotificationType.EMAIL, + True, + ), ("2028675309", NotificationType.SMS, False), ("valid_email@test.com", NotificationType.EMAIL, False), ],