ensure stats returned for lifespan of service

even if they've never sent a notification for realsies
This commit is contained in:
Leo Hemsted
2016-07-28 15:24:21 +01:00
parent 8ad47481d7
commit e5b0d568fa
4 changed files with 46 additions and 9 deletions

View File

@@ -69,6 +69,10 @@ def test_create_zeroed_stats_dicts():
}
def _stats(requested, delivered, failed):
return {'requested': requested, 'delivered': delivered, 'failed': failed}
@freeze_time('2016-07-28T12:00:00')
@pytest.mark.parametrize('created_at, statistics, expected_results', [
# with no stats and just today, return this week's stats
@@ -78,6 +82,13 @@ def test_create_zeroed_stats_dicts():
'email': _stats(0, 0, 0)
}
}),
# with a random created time, still create the dict for midnight
(datetime(2016, 7, 28, 12, 13, 14), [], {
datetime(2016, 7, 25, 0, 0, 0): {
'sms': _stats(0, 0, 0),
'email': _stats(0, 0, 0)
}
}),
# with no stats but a service
(datetime(2016, 7, 14), [], {
datetime(2016, 7, 11): {
@@ -111,7 +122,7 @@ def test_create_zeroed_stats_dicts():
(datetime(2016, 7, 21), [
WeeklyStatsRow('sms', 'created', datetime(2016, 7, 18), 1),
WeeklyStatsRow('sms', 'delivered', datetime(2016, 7, 18), 1),
WeeklyStatsRow('sms', 'created', datetime(2016, 7, 18), 1),
WeeklyStatsRow('sms', 'created', datetime(2016, 7, 25), 1),
], {
datetime(2016, 7, 18): {
'sms': _stats(2, 1, 0),
@@ -125,7 +136,3 @@ def test_create_zeroed_stats_dicts():
])
def test_format_weekly_notification_stats(statistics, created_at, expected_results):
assert format_weekly_notification_stats(statistics, created_at) == expected_results
def _stats(requested, delivered, failed):
return {'requested': requested, 'delivered': delivered, 'failed': failed}