mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-11 18:37:33 -04:00
Add PlatformStatsAPIClient
In API, the endpoint for the new platform admin stats page has been moved to a platform stats blueprint. This means we now need a platform stats client.
This commit is contained in:
@@ -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.inbound_number_client import InboundNumberClient
|
||||||
from app.notify_client.billing_api_client import BillingAPIClient
|
from app.notify_client.billing_api_client import BillingAPIClient
|
||||||
from app.notify_client.complaint_api_client import ComplaintApiClient
|
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.commands import setup_commands
|
||||||
from app.utils import get_cdn_domain
|
from app.utils import get_cdn_domain
|
||||||
from app.utils import gmt_timezones
|
from app.utils import gmt_timezones
|
||||||
@@ -86,6 +87,7 @@ letter_jobs_client = LetterJobsClient()
|
|||||||
inbound_number_client = InboundNumberClient()
|
inbound_number_client = InboundNumberClient()
|
||||||
billing_api_client = BillingAPIClient()
|
billing_api_client = BillingAPIClient()
|
||||||
complaint_api_client = ComplaintApiClient()
|
complaint_api_client = ComplaintApiClient()
|
||||||
|
platform_stats_api_client = PlatformStatsAPIClient()
|
||||||
|
|
||||||
# The current service attached to the request stack.
|
# The current service attached to the request stack.
|
||||||
current_service = LocalProxy(partial(_lookup_req_object, 'service'))
|
current_service = LocalProxy(partial(_lookup_req_object, 'service'))
|
||||||
@@ -131,6 +133,7 @@ def create_app(application):
|
|||||||
inbound_number_client.init_app(application)
|
inbound_number_client.init_app(application)
|
||||||
billing_api_client.init_app(application)
|
billing_api_client.init_app(application)
|
||||||
complaint_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.init_app(application)
|
||||||
login_manager.login_view = 'main.sign_in'
|
login_manager.login_view = 'main.sign_in'
|
||||||
|
|||||||
@@ -4,7 +4,11 @@ from datetime import datetime
|
|||||||
from flask import render_template, request, url_for
|
from flask import render_template, request, url_for
|
||||||
from flask_login import login_required
|
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 import main
|
||||||
from app.main.forms import DateFilterForm
|
from app.main.forms import DateFilterForm
|
||||||
from app.statistics_utils import get_formatted_percentage
|
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['start_date'] = form.start_date.data
|
||||||
api_args['end_date'] = form.end_date.data or datetime.utcnow().date()
|
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)
|
number_of_complaints = complaint_api_client.get_complaint_count(api_args)
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
|
|||||||
@@ -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)
|
||||||
@@ -409,9 +409,6 @@ class ServiceAPIClient(NotifyAdminAPIClient):
|
|||||||
def get_aggregate_platform_stats(self, params_dict=None):
|
def get_aggregate_platform_stats(self, params_dict=None):
|
||||||
return self.get("/service/platform-stats", params=params_dict)
|
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):
|
def get_sms_senders(self, service_id):
|
||||||
return self.get(
|
return self.get(
|
||||||
"/service/{}/sms-sender".format(service_id)
|
"/service/{}/sms-sender".format(service_id)
|
||||||
|
|||||||
@@ -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')
|
mocker.patch('app.main.views.platform_admin.make_columns')
|
||||||
aggregate_stats_mock = mocker.patch(
|
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')
|
complaint_count_mock = mocker.patch('app.main.views.platform_admin.complaint_api_client.get_complaint_count')
|
||||||
|
|
||||||
logged_in_platform_admin_client.get(
|
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')
|
mocker.patch('app.main.views.platform_admin.make_columns')
|
||||||
aggregate_stats_mock = mocker.patch(
|
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')
|
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))
|
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')
|
mocker.patch('app.main.views.platform_admin.make_columns')
|
||||||
aggregate_stats_mock = mocker.patch(
|
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')
|
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'))
|
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,
|
'test-key': 0,
|
||||||
'total': 500}
|
'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)
|
return_value=platform_stats)
|
||||||
mocker.patch('app.main.views.platform_admin.complaint_api_client.get_complaint_count', return_value=15)
|
mocker.patch('app.main.views.platform_admin.complaint_api_client.get_complaint_count', return_value=15)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
@@ -53,15 +53,6 @@ def test_client_only_updates_allowed_attributes(mocker):
|
|||||||
assert str(error.value) == 'Not allowed to update service attributes: foo'
|
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(
|
def test_client_creates_service_with_correct_data(
|
||||||
mocker,
|
mocker,
|
||||||
active_user_with_permissions,
|
active_user_with_permissions,
|
||||||
|
|||||||
Reference in New Issue
Block a user