separate detailed and normal service_api_client.get_service

to make it easier to mock and control return values
This commit is contained in:
Leo Hemsted
2016-07-20 11:46:29 +01:00
parent 3e6eedd079
commit 3ffd6c744c
8 changed files with 45 additions and 25 deletions

View File

@@ -148,8 +148,7 @@ def get_dashboard_partials(service_id):
lambda job: job['original_file_name'] != current_app.config['TEST_MESSAGE_FILENAME'],
job_api_client.get_job(service_id, limit_days=7)['data']
))
service = service_api_client.get_service(service_id, detailed=True)
service = service_api_client.get_detailed_service(service_id)
return {
'totals': render_template(
@@ -178,10 +177,10 @@ def get_dashboard_partials(service_id):
def get_dashboard_totals(service):
for msg_type in service['statistics']:
for msg_type in service['data']['statistics'].values():
msg_type['failed_percentage'] = get_formatted_percentage(msg_type['failed'], msg_type['requested'])
msg_type['show_warning'] = msg_type['failed_percentage'] > 3
return service['statistics']
msg_type['show_warning'] = float(msg_type['failed_percentage']) > 3
return service['data']['statistics']
def calculate_usage(usage):

View File

@@ -41,7 +41,13 @@ class ServiceAPIClient(NotificationsAPIClient):
data = _attach_current_user({})
return self.delete(endpoint, data)
def get_service(self, service_id, detailed=False):
def get_service(self, service_id):
return self._get_service(service_id, False)
def get_detailed_service(self, service_id):
return self._get_service(service_id, True)
def _get_service(self, service_id, detailed):
"""
Retrieve a service.
"""

View File

@@ -31,9 +31,9 @@ def sum_of_statistics(delivery_statistics):
def add_rates_to(delivery_statistics):
return dict(
email_failure_rate=get_formatted_percentage(
delivery_statistics['email_failed'],
delivery_statistics['email_requested']),
emails_failure_rate=get_formatted_percentage(
delivery_statistics['emails_failed'],
delivery_statistics['emails_requested']),
sms_failure_rate=get_formatted_percentage(
delivery_statistics['sms_failed'],
delivery_statistics['sms_requested']),

View File

@@ -9,8 +9,8 @@
statistics['email']['failed'],
statistics['email']['failed_percentage'],
statistics['email']['show_warning'],
failure_link=url_for(".view_notifications", service_id=id, message_type='email', status='failed'),
link=url_for(".view_notifications", service_id=id, message_type='email', status='sending,delivered,failed')
failure_link=url_for(".view_notifications", service_id=service_id, message_type='email', status='failed'),
link=url_for(".view_notifications", service_id=service_id, message_type='email', status='sending,delivered,failed')
) }}
</div>
<div class="column-half">