Add template type to response and refactor

This commit is contained in:
Imdad Ahad
2017-02-20 11:29:15 +00:00
parent 520c588d56
commit 36d52c6e42
4 changed files with 10 additions and 5 deletions

View File

@@ -246,6 +246,7 @@ def dao_fetch_monthly_historical_stats_by_template_for_service(service_id, year)
rows = db.session.query( rows = db.session.query(
Template.id.label('template_id'), Template.id.label('template_id'),
Template.name, Template.name,
Template.template_type,
sq.c.status, sq.c.status,
sq.c.count.label('count'), sq.c.count.label('count'),
sq.c.month sq.c.month

View File

@@ -16,7 +16,7 @@ def format_statistics(statistics):
def format_monthly_template_notification_stats(year, rows): def format_monthly_template_notification_stats(year, rows):
dict = { stats = {
datetime.strftime(date, '%Y-%m'): {} datetime.strftime(date, '%Y-%m'): {}
for date in [ for date in [
datetime(year, month, 1) for month in range(4, 13) datetime(year, month, 1) for month in range(4, 13)
@@ -27,14 +27,15 @@ def format_monthly_template_notification_stats(year, rows):
for row in rows: for row in rows:
formatted_month = row.month.strftime('%Y-%m') formatted_month = row.month.strftime('%Y-%m')
if str(row.template_id) not in dict[formatted_month]: if str(row.template_id) not in stats[formatted_month]:
dict[formatted_month][str(row.template_id)] = { stats[formatted_month][str(row.template_id)] = {
"name": row.name, "name": row.name,
"type": row.template_type,
"counts": dict.fromkeys(NOTIFICATION_STATUS_TYPES, 0) "counts": dict.fromkeys(NOTIFICATION_STATUS_TYPES, 0)
} }
dict[formatted_month][str(row.template_id)]["counts"][row.status] += row.count stats[formatted_month][str(row.template_id)]["counts"][row.status] += row.count
return dict return stats
def create_zeroed_stats_dicts(): def create_zeroed_stats_dicts():

View File

@@ -57,6 +57,7 @@ from tests.app.conftest import (
def test_should_have_decorated_services_dao_functions(): def test_should_have_decorated_services_dao_functions():
assert dao_fetch_monthly_historical_stats_by_template_for_service.__wrapped__.__name__ == 'dao_fetch_monthly_historical_stats_by_template_for_service' # noqa
assert dao_fetch_monthly_historical_stats_for_service.__wrapped__.__name__ == 'dao_fetch_monthly_historical_stats_for_service' # noqa assert dao_fetch_monthly_historical_stats_for_service.__wrapped__.__name__ == 'dao_fetch_monthly_historical_stats_for_service' # noqa
assert dao_fetch_todays_stats_for_service.__wrapped__.__name__ == 'dao_fetch_todays_stats_for_service' # noqa assert dao_fetch_todays_stats_for_service.__wrapped__.__name__ == 'dao_fetch_todays_stats_for_service' # noqa
assert dao_fetch_stats_for_service.__wrapped__.__name__ == 'dao_fetch_stats_for_service' # noqa assert dao_fetch_stats_for_service.__wrapped__.__name__ == 'dao_fetch_stats_for_service' # noqa

View File

@@ -1477,6 +1477,8 @@ def test_get_template_stats_by_month_returns_correct_data(notify_db, notify_db_s
resp_json = json.loads(resp.get_data(as_text=True)).get('data') resp_json = json.loads(resp.get_data(as_text=True)).get('data')
assert resp.status_code == 200 assert resp.status_code == 200
assert resp_json["2016-05"][str(sample_template.id)]["name"] == "Template Name"
assert resp_json["2016-05"][str(sample_template.id)]["type"] == "sms"
assert resp_json["2016-05"][str(sample_template.id)]["counts"]["sending"] == 2 assert resp_json["2016-05"][str(sample_template.id)]["counts"]["sending"] == 2
assert resp_json["2016-05"][str(sample_template.id)]["counts"]["temporary-failure"] == 1 assert resp_json["2016-05"][str(sample_template.id)]["counts"]["temporary-failure"] == 1
assert resp_json["2016-05"][str(sample_template.id)]["counts"]["permanent-failure"] == 1 assert resp_json["2016-05"][str(sample_template.id)]["counts"]["permanent-failure"] == 1