Update the query that gets the number of notifications that have been sent under 10 seconds to use Notifications rather than NotificationHistory.

Also removed a test that is not useful
This commit is contained in:
Rebecca Law
2019-04-10 10:06:27 +01:00
parent 193ff8548c
commit a53340b4d7
2 changed files with 7 additions and 41 deletions

View File

@@ -608,7 +608,7 @@ def dao_get_total_notifications_sent_per_day_for_performance_platform(start_date
key_type != 'test' AND key_type != 'test' AND
notification_type != 'letter'; notification_type != 'letter';
""" """
under_10_secs = NotificationHistory.sent_at - NotificationHistory.created_at <= timedelta(seconds=10) under_10_secs = Notification.sent_at - Notification.created_at <= timedelta(seconds=10)
sum_column = functions.coalesce(functions.sum( sum_column = functions.coalesce(functions.sum(
case( case(
[ [
@@ -619,14 +619,14 @@ def dao_get_total_notifications_sent_per_day_for_performance_platform(start_date
), 0) ), 0)
return db.session.query( return db.session.query(
func.count(NotificationHistory.id).label('messages_total'), func.count(Notification.id).label('messages_total'),
sum_column.label('messages_within_10_secs') sum_column.label('messages_within_10_secs')
).filter( ).filter(
NotificationHistory.created_at >= start_date, Notification.created_at >= start_date,
NotificationHistory.created_at < end_date, Notification.created_at < end_date,
NotificationHistory.api_key_id.isnot(None), Notification.api_key_id.isnot(None),
NotificationHistory.key_type != KEY_TYPE_TEST, Notification.key_type != KEY_TYPE_TEST,
NotificationHistory.notification_type != LETTER_TYPE Notification.notification_type != LETTER_TYPE
).one() ).one()

View File

@@ -6,11 +6,6 @@ from app.dao.notifications_dao import dao_get_total_notifications_sent_per_day_f
from app.models import KEY_TYPE_NORMAL, KEY_TYPE_TEAM, KEY_TYPE_TEST from app.models import KEY_TYPE_NORMAL, KEY_TYPE_TEAM, KEY_TYPE_TEST
from tests.app.db import create_notification from tests.app.db import create_notification
from tests.app.conftest import (
sample_notification_history,
sample_service,
sample_template
)
BEGINNING_OF_DAY = date(2016, 10, 18) BEGINNING_OF_DAY = date(2016, 10, 18)
END_OF_DAY = date(2016, 10, 19) END_OF_DAY = date(2016, 10, 19)
@@ -104,32 +99,3 @@ def test_get_total_notifications_returns_zero_if_no_data(notify_db_session):
assert result.messages_total == 0 assert result.messages_total == 0
assert result.messages_within_10_secs == 0 assert result.messages_within_10_secs == 0
@freeze_time('2016-10-18T10:00')
def test_get_total_notifications_counts_ignores_research_mode(notify_db, notify_db_session):
created_at = datetime.utcnow()
service = sample_service(notify_db, notify_db_session, research_mode=True)
template = sample_template(notify_db, notify_db_session, service=service)
create_notification(template, status='created', sent_at=None)
sample_notification_history(
notify_db,
notify_db_session,
template,
notification_type='email',
sent_at=created_at + timedelta(seconds=5)
)
sample_notification_history(
notify_db,
notify_db_session,
template,
notification_type='sms',
sent_at=created_at + timedelta(seconds=5)
)
result = dao_get_total_notifications_sent_per_day_for_performance_platform(BEGINNING_OF_DAY, END_OF_DAY)
assert result.messages_total == 2
assert result.messages_within_10_secs == 2