def get_monthly_notification_data_by_service(): start_date = request.args.get('start_date') end_date = request.args.get('end_date') result = fact_notification_status_dao.fetch_monthly_notification_statuses_per_service(start_date, end_date) return jsonify(result)
def test_fetch_monthly_notification_statuses_per_service_for_rows_that_should_be_excluded( notify_db_session): valid_service = create_service(service_name='valid service') inactive_service = create_service(service_name='inactive', active=False) research_mode_service = create_service(service_name='research_mode', research_mode=True) restricted_service = create_service(service_name='restricted', restricted=True) # notification in 'created' state create_ft_notification_status(date(2019, 3, 15), service=valid_service, notification_status=NOTIFICATION_CREATED) # notification created by inactive service create_ft_notification_status(date(2019, 3, 15), service=inactive_service) # notification created with test key create_ft_notification_status(date(2019, 3, 12), service=valid_service, key_type=KEY_TYPE_TEST) # notification created by research mode service create_ft_notification_status(date(2019, 3, 2), service=research_mode_service) # notification created by trial mode service create_ft_notification_status(date(2019, 3, 19), service=restricted_service) # notifications outside date range create_ft_notification_status(date(2019, 2, 28), service=valid_service) create_ft_notification_status(date(2019, 4, 1), service=valid_service) results = fetch_monthly_notification_statuses_per_service( date(2019, 3, 1), date(2019, 3, 31)) assert len(results) == 0
def test_fetch_monthly_notification_statuses_per_service(notify_db_session): service_one = create_service(service_name='service one', service_id=UUID('e4e34c4e-73c1-4802-811c-3dd273f21da4')) service_two = create_service(service_name='service two', service_id=UUID('b19d7aad-6f09-4198-8b62-f6cf126b87e5')) create_ft_notification_status(date(2019, 4, 30), notification_type='letter', service=service_one, notification_status=NOTIFICATION_DELIVERED) create_ft_notification_status(date(2019, 3, 1), notification_type='email', service=service_one, notification_status=NOTIFICATION_SENDING, count=4) create_ft_notification_status(date(2019, 3, 2), notification_type='email', service=service_one, notification_status=NOTIFICATION_TECHNICAL_FAILURE, count=2) create_ft_notification_status(date(2019, 3, 7), notification_type='email', service=service_one, notification_status=NOTIFICATION_FAILED, count=1) create_ft_notification_status(date(2019, 3, 10), notification_type='letter', service=service_two, notification_status=NOTIFICATION_PERMANENT_FAILURE, count=1) create_ft_notification_status(date(2019, 3, 10), notification_type='letter', service=service_two, notification_status=NOTIFICATION_PERMANENT_FAILURE, count=1) create_ft_notification_status(date(2019, 3, 13), notification_type='sms', service=service_one, notification_status=NOTIFICATION_SENT, count=1) create_ft_notification_status(date(2019, 4, 1), notification_type='letter', service=service_two, notification_status=NOTIFICATION_TEMPORARY_FAILURE, count=10) create_ft_notification_status(date(2019, 3, 31), notification_type='letter', service=service_one, notification_status=NOTIFICATION_DELIVERED) results = fetch_monthly_notification_statuses_per_service(date(2019, 3, 1), date(2019, 4, 30)) assert len(results) == 6 # 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', 'letter', 0, 0, 0, 0, 2, 0] assert [x for x in results[1]] == [date(2019, 3, 1), service_one.id, 'service one', 'email', 4, 0, 3, 0, 0, 0] assert [x for x in results[2]] == [date(2019, 3, 1), service_one.id, 'service one', 'letter', 0, 1, 0, 0, 0, 0] assert [x for x in results[3]] == [date(2019, 3, 1), service_one.id, 'service one', 'sms', 0, 0, 0, 0, 0, 1] assert [x for x in results[4]] == [date(2019, 4, 1), service_two.id, 'service two', 'letter', 0, 0, 0, 10, 0, 0] assert [x for x in results[5]] == [date(2019, 4, 1), service_one.id, 'service one', 'letter', 0, 1, 0, 0, 0, 0]