mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-15 17:52:26 -05:00
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:
@@ -92,7 +92,7 @@ def create_empty_monthly_notification_status_stats_dict(year):
|
|||||||
# nested dicts - data[month][template type][status] = count
|
# nested dicts - data[month][template type][status] = count
|
||||||
return {
|
return {
|
||||||
convert_utc_to_bst(start).strftime('%Y-%m'): {
|
convert_utc_to_bst(start).strftime('%Y-%m'): {
|
||||||
template_type: {}
|
template_type: defaultdict(int)
|
||||||
for template_type in TEMPLATE_TYPES
|
for template_type in TEMPLATE_TYPES
|
||||||
}
|
}
|
||||||
for start in utc_month_starts
|
for start in utc_month_starts
|
||||||
@@ -103,6 +103,6 @@ def add_monthly_notification_status_stats(data, stats):
|
|||||||
for row in stats:
|
for row in stats:
|
||||||
month = row.month.strftime('%Y-%m')
|
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
|
return data
|
||||||
|
|||||||
@@ -194,13 +194,13 @@ def test_add_monthly_notification_status_stats():
|
|||||||
# this data won't be affected
|
# this data won't be affected
|
||||||
data['2018-05']['email']['sending'] = 32
|
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
|
data['2018-05']['sms']['sending'] = 16
|
||||||
|
|
||||||
add_monthly_notification_status_stats(data, rows)
|
add_monthly_notification_status_stats(data, rows)
|
||||||
|
|
||||||
assert data == {
|
assert data == {
|
||||||
'2018-04': {'sms': {'sending': 1, 'delivered': 2}, 'email': {'sending': 4}, 'letter': {}},
|
'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': {}},
|
'2018-06': {'sms': {}, 'email': {}, 'letter': {}},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user