def test_fetch_notification_status_totals_for_all_services_works_in_bst( 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_notification(sms_template, created_at=datetime(2018, 4, 20, 12, 0, 0), status='delivered') create_notification(sms_template, created_at=datetime(2018, 4, 21, 11, 0, 0), status='created') create_notification(sms_template, created_at=datetime(2018, 4, 21, 12, 0, 0), status='delivered') create_notification(email_template, created_at=datetime(2018, 4, 21, 13, 0, 0), status='delivered') create_notification(email_template, created_at=datetime(2018, 4, 21, 14, 0, 0), status='delivered') results = sorted( fetch_notification_status_totals_for_all_services( start_date=date(2018, 4, 21), end_date=date(2018, 4, 21)), key=lambda x: (x.notification_type, x.status) ) assert len(results) == 3 assert results[0].notification_type == 'email' assert results[0].status == 'delivered' assert results[0].count == 2 assert results[1].notification_type == 'sms' assert results[1].status == 'created' assert results[1].count == 1 assert results[2].notification_type == 'sms' assert results[2].status == 'delivered' assert results[2].count == 1
def test_fetch_notification_status_totals_for_all_services( notify_db_session, start_date, end_date, expected_email, expected_letters, expected_sms, expected_created_sms): set_up_data() results = sorted(fetch_notification_status_totals_for_all_services( start_date=date(2018, 10, start_date), end_date=date(2018, 10, end_date)), key=lambda x: (x.notification_type, x.status)) assert len(results) == 4 assert results[0].notification_type == 'email' assert results[0].status == 'delivered' assert results[0].count == expected_email assert results[1].notification_type == 'letter' assert results[1].status == 'delivered' assert results[1].count == expected_letters assert results[2].notification_type == 'sms' assert results[2].status == 'created' assert results[2].count == expected_created_sms assert results[3].notification_type == 'sms' assert results[3].status == 'delivered' assert results[3].count == expected_sms
def get_platform_stats(): if request.args: validate(request.args, platform_stats_request) # If start and end date are not set, we are expecting today's stats. today = str(datetime.utcnow().date()) start_date = datetime.strptime(request.args.get('start_date', today), '%Y-%m-%d').date() end_date = datetime.strptime(request.args.get('end_date', today), '%Y-%m-%d').date() data = fetch_notification_status_totals_for_all_services(start_date=start_date, end_date=end_date) stats = format_admin_stats(data) return jsonify(stats)