Files
notifications-api/tests/app/dao/test_notification_statistics_dao.py
Nicholas Staples f465066a69 Group by Notification Statistics added and all tests working.
Fixed tests for upgraded client.
2016-05-05 11:04:20 +01:00

123 lines
4.1 KiB
Python

from datetime import (date, timedelta)
from app.models import NotificationStatistics
from tests.app.conftest import sample_notification_statistics as create_sample_notification_statistics
from app.dao.notifications_dao import dao_get_7_day_agg_notification_statistics_for_service
def test_display_weekly_notification_statistics_sum_over_week(notify_db,
notify_db_session,
sample_service):
fools = date(2016, 4, 1)
create_sample_notification_statistics(
notify_db,
notify_db_session,
day=fools
)
create_sample_notification_statistics(
notify_db,
notify_db_session,
day=fools + timedelta(days=1)
)
assert dao_get_7_day_agg_notification_statistics_for_service(
sample_service.id,
fools
).all() == [(0, 4, 2, 2, 4, 2, 2)]
def test_display_weekly_notification_statistics_separate_over_weeks(notify_db,
notify_db_session,
sample_service):
fools = date(2016, 4, 1)
next_week = fools + timedelta(days=7)
create_sample_notification_statistics(
notify_db,
notify_db_session,
day=fools
)
create_sample_notification_statistics(
notify_db,
notify_db_session,
day=next_week
)
assert dao_get_7_day_agg_notification_statistics_for_service(
sample_service.id,
fools
).all() == [(1, 2, 1, 1, 2, 1, 1), (0, 2, 1, 1, 2, 1, 1)]
def test_display_weekly_notification_statistics_7_days_from_date_from(notify_db,
notify_db_session,
sample_service):
fools = date(2016, 4, 1)
eow_fools = fools + timedelta(days=6)
next_week = fools + timedelta(days=7)
two_weeks_later = fools + timedelta(days=14)
create_sample_notification_statistics(
notify_db,
notify_db_session,
day=fools
)
create_sample_notification_statistics(
notify_db,
notify_db_session,
day=eow_fools
)
create_sample_notification_statistics(
notify_db,
notify_db_session,
day=next_week
)
create_sample_notification_statistics(
notify_db,
notify_db_session,
day=two_weeks_later
)
assert dao_get_7_day_agg_notification_statistics_for_service(
sample_service.id,
fools
).all() == [(2, 2, 1, 1, 2, 1, 1), (1, 2, 1, 1, 2, 1, 1), (0, 4, 2, 2, 4, 2, 2)]
def test_display_weekly_notification_statistics_week_number_misses_week(notify_db,
notify_db_session,
sample_service):
fools = date(2016, 4, 1)
two_weeks_later = fools + timedelta(days=14)
create_sample_notification_statistics(
notify_db,
notify_db_session,
day=fools
)
create_sample_notification_statistics(
notify_db,
notify_db_session,
day=two_weeks_later
)
assert dao_get_7_day_agg_notification_statistics_for_service(
sample_service.id,
fools
).all() == [(2, 2, 1, 1, 2, 1, 1), (0, 2, 1, 1, 2, 1, 1)]
def test_display_weekly_notification_statistics_week_limit(notify_db,
notify_db_session,
sample_service):
fools = date(2016, 4, 1)
two_weeks_later = fools + timedelta(days=14)
create_sample_notification_statistics(
notify_db,
notify_db_session,
day=fools
)
create_sample_notification_statistics(
notify_db,
notify_db_session,
day=two_weeks_later
)
assert dao_get_7_day_agg_notification_statistics_for_service(
sample_service.id,
fools,
1
).all() == [(0, 2, 1, 1, 2, 1, 1)]