mirror of
https://github.com/GSA/notifications-api.git
synced 2026-07-28 19:59:47 -04:00
Create platform-stats blueprint
Created a platform-stats blueprint and moved the new platform stats endpoint to the new blueprint (it was previously in the service blueprint). Since the original platform stats route and the new platform stats route are now in different blueprints, their view functions can have the same name without any issues.
This commit is contained in:
@@ -34,7 +34,7 @@ from app.dao.notifications_dao import (
|
||||
dao_get_notifications_by_references,
|
||||
dao_get_notification_history_by_reference,
|
||||
notifications_not_yet_sent,
|
||||
fetch_new_aggregate_stats_by_date_range_for_all_services,
|
||||
fetch_aggregate_stats_by_date_range_for_all_services,
|
||||
)
|
||||
from app.dao.services_dao import dao_update_service
|
||||
from app.models import (
|
||||
@@ -1941,7 +1941,7 @@ def test_notifications_not_yet_sent_return_no_rows(sample_service, notification_
|
||||
('NotificationHistory', 3),
|
||||
])
|
||||
@freeze_time('2018-01-08')
|
||||
def test_fetch_new_aggregate_stats_by_date_range_for_all_services_uses_the_correct_table(
|
||||
def test_fetch_aggregate_stats_by_date_range_for_all_services_uses_the_correct_table(
|
||||
mocker,
|
||||
notify_db_session,
|
||||
table_name,
|
||||
@@ -1952,21 +1952,21 @@ def test_fetch_new_aggregate_stats_by_date_range_for_all_services_uses_the_corre
|
||||
|
||||
# mock the table that should not be used, then check it is not being called
|
||||
unused_table_mock = mocker.patch('app.dao.services_dao.{}'.format(table_name))
|
||||
fetch_new_aggregate_stats_by_date_range_for_all_services(start_date, end_date)
|
||||
fetch_aggregate_stats_by_date_range_for_all_services(start_date, end_date)
|
||||
|
||||
unused_table_mock.assert_not_called()
|
||||
|
||||
|
||||
def test_fetch_new_aggregate_stats_by_date_range_for_all_services_returns_empty_list_when_no_stats(notify_db_session):
|
||||
def test_fetch_aggregate_stats_by_date_range_for_all_services_returns_empty_list_when_no_stats(notify_db_session):
|
||||
start_date = date(2018, 1, 1)
|
||||
end_date = date(2018, 1, 5)
|
||||
|
||||
result = fetch_new_aggregate_stats_by_date_range_for_all_services(start_date, end_date)
|
||||
result = fetch_aggregate_stats_by_date_range_for_all_services(start_date, end_date)
|
||||
assert result == []
|
||||
|
||||
|
||||
@freeze_time('2018-01-08')
|
||||
def test_fetch_new_aggregate_stats_by_date_range_for_all_services_groups_stats(
|
||||
def test_fetch_aggregate_stats_by_date_range_for_all_services_groups_stats(
|
||||
sample_template,
|
||||
sample_email_template,
|
||||
sample_letter_template,
|
||||
@@ -1984,7 +1984,7 @@ def test_fetch_new_aggregate_stats_by_date_range_for_all_services_groups_stats(
|
||||
create_notification(template=sample_letter_template, status='virus-scan-failed',
|
||||
created_at=today)
|
||||
|
||||
result = fetch_new_aggregate_stats_by_date_range_for_all_services(today, today)
|
||||
result = fetch_aggregate_stats_by_date_range_for_all_services(today, today)
|
||||
|
||||
assert len(result) == 5
|
||||
assert result[0] == ('email', 'permanent-failure', 'normal', 3)
|
||||
@@ -1994,12 +1994,12 @@ def test_fetch_new_aggregate_stats_by_date_range_for_all_services_groups_stats(
|
||||
assert result[4] == ('letter', 'virus-scan-failed', 'normal', 1)
|
||||
|
||||
|
||||
def test_fetch_new_aggregate_stats_by_date_range_for_all_services_uses_bst_date(sample_template):
|
||||
def test_fetch_aggregate_stats_by_date_range_for_all_services_uses_bst_date(sample_template):
|
||||
query_day = datetime(2018, 6, 5).date()
|
||||
create_notification(sample_template, status='sent', created_at=datetime(2018, 6, 4, 23, 59))
|
||||
create_notification(sample_template, status='created', created_at=datetime(2018, 6, 5, 23, 00))
|
||||
|
||||
result = fetch_new_aggregate_stats_by_date_range_for_all_services(query_day, query_day)
|
||||
result = fetch_aggregate_stats_by_date_range_for_all_services(query_day, query_day)
|
||||
|
||||
assert len(result) == 1
|
||||
assert result[0].status == 'sent'
|
||||
|
||||
0
tests/app/platform_stats/__init__.py
Normal file
0
tests/app/platform_stats/__init__.py
Normal file
25
tests/app/platform_stats/test_rest.py
Normal file
25
tests/app/platform_stats/test_rest.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from datetime import date, datetime
|
||||
|
||||
from freezegun import freeze_time
|
||||
|
||||
|
||||
@freeze_time('2018-06-01')
|
||||
def test_get_new_platform_stats_uses_todays_date_if_no_start_or_end_date_is_provided(admin_request, mocker):
|
||||
today = datetime.now().date()
|
||||
dao_mock = mocker.patch('app.platform_stats.rest.fetch_aggregate_stats_by_date_range_for_all_services')
|
||||
mocker.patch('app.service.rest.statistics.format_statistics')
|
||||
|
||||
admin_request.get('platform_stats.get_new_platform_stats')
|
||||
|
||||
dao_mock.assert_called_once_with(start_date=today, end_date=today)
|
||||
|
||||
|
||||
def test_get_new_platform_stats_can_filter_by_date(admin_request, mocker):
|
||||
start_date = date(2017, 1, 1)
|
||||
end_date = date(2018, 1, 1)
|
||||
dao_mock = mocker.patch('app.platform_stats.rest.fetch_aggregate_stats_by_date_range_for_all_services')
|
||||
mocker.patch('app.service.rest.statistics.format_statistics')
|
||||
|
||||
admin_request.get('platform_stats.get_new_platform_stats', start_date=start_date, end_date=end_date)
|
||||
|
||||
dao_mock.assert_called_once_with(start_date=start_date, end_date=end_date)
|
||||
@@ -3085,28 +3085,6 @@ def test_get_platform_stats_creates_zero_stats(client, notify_db_session):
|
||||
assert json_resp['sms'] == {'failed': 0, 'requested': 4, 'delivered': 3}
|
||||
|
||||
|
||||
@freeze_time('2018-06-01')
|
||||
def test_get_new_platform_stats_uses_todays_date_if_no_start_or_end_date_is_provided(admin_request, mocker):
|
||||
today = datetime.now().date()
|
||||
dao_mock = mocker.patch('app.service.rest.fetch_new_aggregate_stats_by_date_range_for_all_services')
|
||||
mocker.patch('app.service.rest.statistics.format_statistics')
|
||||
|
||||
admin_request.get('service.get_new_platform_stats')
|
||||
|
||||
dao_mock.assert_called_once_with(start_date=today, end_date=today)
|
||||
|
||||
|
||||
def test_get_new_platform_stats_can_filter_by_date(admin_request, mocker):
|
||||
start_date = date(2017, 1, 1)
|
||||
end_date = date(2018, 1, 1)
|
||||
dao_mock = mocker.patch('app.service.rest.fetch_new_aggregate_stats_by_date_range_for_all_services')
|
||||
mocker.patch('app.service.rest.statistics.format_statistics')
|
||||
|
||||
admin_request.get('service.get_new_platform_stats', start_date=start_date, end_date=end_date)
|
||||
|
||||
dao_mock.assert_called_once_with(start_date=start_date, end_date=end_date)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('today_only, stats', [
|
||||
(False, {'requested': 2, 'delivered': 1, 'failed': 0}),
|
||||
(True, {'requested': 1, 'delivered': 0, 'failed': 0})
|
||||
|
||||
Reference in New Issue
Block a user