Updates after review

- Modified the services_dao to return an int instead of a datetime to
make usage easier and removed the BST function on year as it is not
relevant for year
- Improved tests do there is less logic by ordering the result so there
is less reliance on the template id
- Renamed variable in stats_template_usage_by_month_dao.py to make it
consistent with the method
This commit is contained in:
Richard Chapman
2017-11-09 14:13:42 +00:00
parent 59df6bdbb6
commit b78d989d4e
14 changed files with 76 additions and 148 deletions

View File

@@ -1,2 +0,0 @@
email_address
test@test.com
1 email_address
2 test@test.com

View File

@@ -1 +0,0 @@
phone number
1 phone number

View File

@@ -1,11 +0,0 @@
EMAILADDRESS
test1@test.com
test2@test.com
test3@test.com
test4@test.com
test5@test.com
test6@test.com
test7@test.com
test8@test.com
test9@test.com
test0@test.com
1 EMAILADDRESS
2 test1@test.com
3 test2@test.com
4 test3@test.com
5 test4@test.com
6 test5@test.com
7 test6@test.com
8 test7@test.com
9 test8@test.com
10 test9@test.com
11 test0@test.com

View File

@@ -1,11 +0,0 @@
address_line_1, address_line_2, address_line_3
name1, street1, town1, postcode1
name2, street2, town2, postcode2
name3, street3, town3, postcode3
name4, street4, town4, postcode4
name5, street5, town5, postcode5
name6, street6, town6, postcode6
name7, street7, town7, postcode7
name8, street8, town8, postcode8
name9, street9, town9, postcode9
name0, street0, town0, postcode0
1 address_line_1, address_line_2, address_line_3
2 name1, street1, town1, postcode1
3 name2, street2, town2, postcode2
4 name3, street3, town3, postcode3
5 name4, street4, town4, postcode4
6 name5, street5, town5, postcode5
7 name6, street6, town6, postcode6
8 name7, street7, town7, postcode7
9 name8, street8, town8, postcode8
10 name9, street9, town9, postcode9
11 name0, street0, town0, postcode0

View File

@@ -1,11 +0,0 @@
PhoneNumber,Name
+441234123121,chris
+441234123122,chris
+441234123123,chris
+441234123124,chris
+441234123125,chris
+441234123126,chris
+441234123127,chris
+441234123128,chris
+441234123129,chris
+441234123120,chris
1 PhoneNumber Name
2 +441234123121 chris
3 +441234123122 chris
4 +441234123123 chris
5 +441234123124 chris
6 +441234123125 chris
7 +441234123126 chris
8 +441234123127 chris
9 +441234123128 chris
10 +441234123129 chris
11 +441234123120 chris

View File

@@ -1,2 +0,0 @@
PHONE NUMBER, IGNORE THIS COLUMN
+441234123123, nope
1 PHONE NUMBER IGNORE THIS COLUMN
2 +441234123123 nope

View File

@@ -33,7 +33,8 @@ from app.celery.scheduled_tasks import (
switch_current_sms_provider_on_slow_delivery,
timeout_job_statistics,
timeout_notifications,
daily_stats_template_usage_my_month)
daily_stats_template_usage_by_month
)
from app.clients.performance_platform.performance_platform_client import PerformancePlatformClient
from app.config import QueueNames, TaskNames
from app.dao.jobs_dao import dao_get_job_by_id
@@ -840,7 +841,7 @@ def test_check_job_status_task_raises_job_incomplete_error_for_multiple_jobs(moc
)
def test_daily_stats_template_usage_my_month(notify_db, notify_db_session):
def test_daily_stats_template_usage_by_month(notify_db, notify_db_session):
notification_history = functools.partial(
create_notification_history,
notify_db,
@@ -856,36 +857,37 @@ def test_daily_stats_template_usage_my_month(notify_db, notify_db_session):
notification_history(created_at=datetime(2016, 4, 1), sample_template=template_two)
notification_history(created_at=datetime.now(), sample_template=template_two)
daily_stats_template_usage_my_month()
daily_stats_template_usage_by_month()
results = db.session.query(StatsTemplateUsageByMonth).all()
result = db.session.query(
StatsTemplateUsageByMonth
).order_by(
StatsTemplateUsageByMonth.year,
StatsTemplateUsageByMonth.month
).all()
assert len(results) == 2
assert len(result) == 2
for result in results:
if result.template_id == template_one.id:
assert result.template_id == template_one.id
assert result.month == 10
assert result.year == 2017
assert result.count == 1
elif result.template_id == template_two.id:
assert result.template_id == template_two.id
assert result.month == 4
assert result.year == 2016
assert result.count == 2
else:
raise AssertionError()
assert result[0].template_id == template_two.id
assert result[0].month == 4
assert result[0].year == 2016
assert result[0].count == 2
assert result[1].template_id == template_one.id
assert result[1].month == 10
assert result[1].year == 2017
assert result[1].count == 1
def test_daily_stats_template_usage_my_month_no_data():
daily_stats_template_usage_my_month()
def test_daily_stats_template_usage_by_month_no_data():
daily_stats_template_usage_by_month()
results = db.session.query(StatsTemplateUsageByMonth).all()
assert len(results) == 0
def test_daily_stats_template_usage_my_month_multiple_runs(notify_db, notify_db_session):
def test_daily_stats_template_usage_by_month_multiple_runs(notify_db, notify_db_session):
notification_history = functools.partial(
create_notification_history,
notify_db,
@@ -896,12 +898,12 @@ def test_daily_stats_template_usage_my_month_multiple_runs(notify_db, notify_db_
template_one = create_sample_template(notify_db, notify_db_session)
template_two = create_sample_template(notify_db, notify_db_session)
notification_history(created_at=datetime(2017, 10, 1), sample_template=template_one)
notification_history(created_at=datetime(2017, 11, 1), sample_template=template_one)
notification_history(created_at=datetime(2016, 4, 1), sample_template=template_two)
notification_history(created_at=datetime(2016, 4, 1), sample_template=template_two)
notification_history(created_at=datetime.now(), sample_template=template_two)
daily_stats_template_usage_my_month()
daily_stats_template_usage_by_month()
template_three = create_sample_template(notify_db, notify_db_session)
@@ -911,35 +913,33 @@ def test_daily_stats_template_usage_my_month_multiple_runs(notify_db, notify_db_
notification_history(created_at=datetime(2016, 4, 1), sample_template=template_two)
notification_history(created_at=datetime.now(), sample_template=template_two)
daily_stats_template_usage_my_month()
daily_stats_template_usage_by_month()
results = db.session.query(StatsTemplateUsageByMonth).all()
result = db.session.query(
StatsTemplateUsageByMonth
).order_by(
StatsTemplateUsageByMonth.year,
StatsTemplateUsageByMonth.month
).all()
assert len(results) == 4
assert len(result) == 4
for result in results:
if result.template_id == template_one.id:
assert result.template_id == template_one.id
assert result.month == 10
assert result.year == 2017
assert result.count == 1
elif result.template_id == template_two.id:
assert result.template_id == template_two.id
assert result.month == 4
assert result.year == 2016
assert result.count == 4
elif result.template_id == template_three.id:
if result.month == 10:
assert result.template_id == template_three.id
assert result.month == 10
assert result.year == 2017
assert result.count == 1
elif result.month == 9:
assert result.template_id == template_three.id
assert result.month == 9
assert result.year == 2017
assert result.count == 1
else:
raise AssertionError()
else:
raise AssertionError()
assert result[0].template_id == template_two.id
assert result[0].month == 4
assert result[0].year == 2016
assert result[0].count == 4
assert result[1].template_id == template_three.id
assert result[1].month == 9
assert result[1].year == 2017
assert result[1].count == 1
assert result[2].template_id == template_three.id
assert result[2].month == 10
assert result[2].year == 2017
assert result[2].count == 1
assert result[3].template_id == template_one.id
assert result[3].month == 11
assert result[3].year == 2017
assert result[3].count == 1