def get_service_statistics(service_id, today_only, limit_days=7): # today_only flag is used by the send page to work out if the service will exceed their daily usage by sending a job if today_only: stats = dao_fetch_todays_stats_for_service(service_id) else: stats = fetch_notification_status_for_service_for_today_and_7_previous_days(service_id, limit_days=limit_days) return statistics.format_statistics(stats)
def test_fetch_stats_for_today_only_includes_today(notify_db, notify_db_session, sample_template): # two created email, one failed email, and one created sms with freeze_time("2001-01-01T23:59:00"): just_before_midnight_yesterday = create_notification(notify_db, None, to_field="1", status="delivered") with freeze_time("2001-01-02T00:01:00"): just_after_midnight_today = create_notification(notify_db, None, to_field="2", status="failed") with freeze_time("2001-01-02T12:00:00"): right_now = create_notification(notify_db, None, to_field="3", status="created") stats = dao_fetch_todays_stats_for_service(sample_template.service_id) stats = {row.status: row.count for row in stats} assert "delivered" not in stats assert stats["failed"] == 1 assert stats["created"] == 1
def test_fetch_stats_for_today_only_includes_today(notify_db_session): template = create_template(service=create_service()) # two created email, one failed email, and one created sms with freeze_time('2001-01-01T23:59:00'): # just_before_midnight_yesterday create_notification(template=template, to_field='1', status='delivered') with freeze_time('2001-01-02T00:01:00'): # just_after_midnight_today create_notification(template=template, to_field='2', status='failed') with freeze_time('2001-01-02T12:00:00'): # right_now create_notification(template=template, to_field='3', status='created') stats = dao_fetch_todays_stats_for_service(template.service_id) stats = {row.status: row.count for row in stats} assert 'delivered' not in stats assert stats['failed'] == 1 assert stats['created'] == 1