diff --git a/app/__init__.py b/app/__init__.py index ee6a4a899..d3f74b9b5 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -59,6 +59,7 @@ from app.notify_client.letter_jobs_client import LetterJobsClient from app.notify_client.inbound_number_client import InboundNumberClient from app.notify_client.billing_api_client import BillingAPIClient from app.notify_client.complaint_api_client import ComplaintApiClient +from app.notify_client.platform_stats_api_client import PlatformStatsAPIClient from app.commands import setup_commands from app.utils import get_cdn_domain from app.utils import gmt_timezones @@ -86,6 +87,7 @@ letter_jobs_client = LetterJobsClient() inbound_number_client = InboundNumberClient() billing_api_client = BillingAPIClient() complaint_api_client = ComplaintApiClient() +platform_stats_api_client = PlatformStatsAPIClient() # The current service attached to the request stack. current_service = LocalProxy(partial(_lookup_req_object, 'service')) @@ -131,6 +133,7 @@ def create_app(application): inbound_number_client.init_app(application) billing_api_client.init_app(application) complaint_api_client.init_app(application) + platform_stats_api_client.init_app(application) login_manager.init_app(application) login_manager.login_view = 'main.sign_in' diff --git a/app/main/views/platform_admin.py b/app/main/views/platform_admin.py index a8d80f037..f69c90236 100644 --- a/app/main/views/platform_admin.py +++ b/app/main/views/platform_admin.py @@ -4,7 +4,11 @@ from datetime import datetime from flask import render_template, request, url_for from flask_login import login_required -from app import complaint_api_client, service_api_client +from app import ( + complaint_api_client, + platform_stats_api_client, + service_api_client, +) from app.main import main from app.main.forms import DateFilterForm from app.statistics_utils import get_formatted_percentage @@ -53,7 +57,7 @@ def platform_admin_new(): api_args['start_date'] = form.start_date.data api_args['end_date'] = form.end_date.data or datetime.utcnow().date() - platform_stats = service_api_client.get_new_aggregate_platform_stats(api_args) + platform_stats = platform_stats_api_client.get_aggregate_platform_stats(api_args) number_of_complaints = complaint_api_client.get_complaint_count(api_args) return render_template( diff --git a/app/notify_client/platform_stats_api_client.py b/app/notify_client/platform_stats_api_client.py new file mode 100644 index 000000000..9ca9390de --- /dev/null +++ b/app/notify_client/platform_stats_api_client.py @@ -0,0 +1,11 @@ +from app.notify_client import NotifyAdminAPIClient + + +class PlatformStatsAPIClient(NotifyAdminAPIClient): + # Fudge assert in the super __init__ so + # we can set those variables later. + def __init__(self): + super().__init__("a" * 73, "b") + + def get_aggregate_platform_stats(self, params_dict=None): + return self.get("/platform-stats", params=params_dict) diff --git a/app/notify_client/service_api_client.py b/app/notify_client/service_api_client.py index 9d5b59ccb..af8a2481a 100644 --- a/app/notify_client/service_api_client.py +++ b/app/notify_client/service_api_client.py @@ -409,9 +409,6 @@ class ServiceAPIClient(NotifyAdminAPIClient): def get_aggregate_platform_stats(self, params_dict=None): return self.get("/service/platform-stats", params=params_dict) - def get_new_aggregate_platform_stats(self, params_dict=None): - return self.get("/service/platform-stats-new", params=params_dict) - def get_sms_senders(self, service_id): return self.get( "/service/{}/sms-sender".format(service_id) diff --git a/tests/app/main/views/test_platform_admin.py b/tests/app/main/views/test_platform_admin.py index 0e0878c08..8c587a23e 100644 --- a/tests/app/main/views/test_platform_admin.py +++ b/tests/app/main/views/test_platform_admin.py @@ -702,7 +702,7 @@ def test_platform_admin_new_with_start_and_end_dates_provided(mocker, logged_in_ mocker.patch('app.main.views.platform_admin.make_columns') aggregate_stats_mock = mocker.patch( - 'app.main.views.platform_admin.service_api_client.get_new_aggregate_platform_stats') + 'app.main.views.platform_admin.platform_stats_api_client.get_aggregate_platform_stats') complaint_count_mock = mocker.patch('app.main.views.platform_admin.complaint_api_client.get_complaint_count') logged_in_platform_admin_client.get( @@ -720,7 +720,7 @@ def test_platform_admin_new_with_only_a_start_date_provided(mocker, logged_in_pl mocker.patch('app.main.views.platform_admin.make_columns') aggregate_stats_mock = mocker.patch( - 'app.main.views.platform_admin.service_api_client.get_new_aggregate_platform_stats') + 'app.main.views.platform_admin.platform_stats_api_client.get_aggregate_platform_stats') complaint_count_mock = mocker.patch('app.main.views.platform_admin.complaint_api_client.get_complaint_count') logged_in_platform_admin_client.get(url_for('main.platform_admin_new', start_date=start_date)) @@ -734,7 +734,7 @@ def test_platform_admin_new_without_dates_provided(mocker, logged_in_platform_ad mocker.patch('app.main.views.platform_admin.make_columns') aggregate_stats_mock = mocker.patch( - 'app.main.views.platform_admin.service_api_client.get_new_aggregate_platform_stats') + 'app.main.views.platform_admin.platform_stats_api_client.get_aggregate_platform_stats') complaint_count_mock = mocker.patch('app.main.views.platform_admin.complaint_api_client.get_complaint_count') logged_in_platform_admin_client.get(url_for('main.platform_admin_new')) @@ -761,7 +761,7 @@ def test_platform_admin_new_displays_stats_in_right_boxes_and_with_correct_styli 'test-key': 0, 'total': 500} } - mocker.patch('app.main.views.platform_admin.service_api_client.get_new_aggregate_platform_stats', + mocker.patch('app.main.views.platform_admin.platform_stats_api_client.get_aggregate_platform_stats', return_value=platform_stats) mocker.patch('app.main.views.platform_admin.complaint_api_client.get_complaint_count', return_value=15) diff --git a/tests/app/notify_client/test_platform_stats_api_client.py b/tests/app/notify_client/test_platform_stats_api_client.py new file mode 100644 index 000000000..e0f510c86 --- /dev/null +++ b/tests/app/notify_client/test_platform_stats_api_client.py @@ -0,0 +1,10 @@ +from app.notify_client.platform_stats_api_client import PlatformStatsAPIClient + + +def test_get_aggregate_platform_stats(mocker): + client = PlatformStatsAPIClient() + mock = mocker.patch.object(client, 'get') + params_dict = {'start_date': '2018-06-01', 'end_date': '2018-06-15'} + + client.get_aggregate_platform_stats(params_dict=params_dict) + mock.assert_called_once_with('/platform-stats', params=params_dict) diff --git a/tests/app/notify_client/test_service_api_client.py b/tests/app/notify_client/test_service_api_client.py index 61d78e766..7bc4afd4f 100644 --- a/tests/app/notify_client/test_service_api_client.py +++ b/tests/app/notify_client/test_service_api_client.py @@ -53,15 +53,6 @@ def test_client_only_updates_allowed_attributes(mocker): assert str(error.value) == 'Not allowed to update service attributes: foo' -def test_get_new_aggregate_platform_stats(mocker): - client = ServiceAPIClient() - mock = mocker.patch.object(client, 'get') - params_dict = {'start_date': '2018-06-01', 'end_date': '2018-06-15'} - - client.get_new_aggregate_platform_stats(params_dict=params_dict) - mock.assert_called_once_with('/service/platform-stats-new', params=params_dict) - - def test_client_creates_service_with_correct_data( mocker, active_user_with_permissions,