make sure we combine stats that are already there

eg we have yesterdays data and want to top it up with todays deltas

'use a defaultdict to make this painless'
This commit is contained in:
Leo Hemsted
2018-07-03 14:36:41 +01:00
parent 1589bb58bb
commit 00e9fee471
2 changed files with 4 additions and 4 deletions

View File

@@ -92,7 +92,7 @@ def create_empty_monthly_notification_status_stats_dict(year):
# nested dicts - data[month][template type][status] = count
return {
convert_utc_to_bst(start).strftime('%Y-%m'): {
template_type: {}
template_type: defaultdict(int)
for template_type in TEMPLATE_TYPES
}
for start in utc_month_starts
@@ -103,6 +103,6 @@ def add_monthly_notification_status_stats(data, stats):
for row in stats:
month = row.month.strftime('%Y-%m')
data[month][row.notification_type][row.notification_status] = row.count
data[month][row.notification_type][row.notification_status] += row.count
return data

View File

@@ -194,13 +194,13 @@ def test_add_monthly_notification_status_stats():
# this data won't be affected
data['2018-05']['email']['sending'] = 32
# this data will get overwritten
# this data will get combined with the 8 from row_data
data['2018-05']['sms']['sending'] = 16
add_monthly_notification_status_stats(data, rows)
assert data == {
'2018-04': {'sms': {'sending': 1, 'delivered': 2}, 'email': {'sending': 4}, 'letter': {}},
'2018-05': {'sms': {'sending': 8}, 'email': {'sending': 32}, 'letter': {}},
'2018-05': {'sms': {'sending': 24}, 'email': {'sending': 32}, 'letter': {}},
'2018-06': {'sms': {}, 'email': {}, 'letter': {}},
}