Re-add a 'requested' stat to a job

It’s useful to know how many notifications we’ve handed off to our
providers. This is a measure of how complete the processing of the job
is.

This is important, because once the job processing is complete then you
can accurately reconcile the report with the CSV file that you’ve
uploaded.
This commit is contained in:
Chris Hill-Scott
2016-08-30 14:50:38 +01:00
parent 1651c72b3d
commit 7324b30dbc
2 changed files with 11 additions and 1 deletions

View File

@@ -19,7 +19,8 @@ class JobApiClient(BaseAPIClient):
results = {
'sending': 0,
'delivered': 0,
'failed': 0
'failed': 0,
'requested': 0
}
if 'statistics' in job:
for outcome in job['statistics']:
@@ -29,6 +30,7 @@ class JobApiClient(BaseAPIClient):
results['sending'] += outcome['count']
if outcome['status'] in ['delivered']:
results['delivered'] += outcome['count']
results['requested'] += outcome['count']
return results
def get_job(self, service_id, job_id=None, limit_days=None, status=None):
@@ -42,6 +44,7 @@ class JobApiClient(BaseAPIClient):
job['data']['notifications_sent'] = stats['delivered'] + stats['failed']
job['data']['notifications_delivered'] = stats['delivered']
job['data']['notifications_failed'] = stats['failed']
job['data']['notifications_requested'] = stats['requested']
return job
params = {}
@@ -55,6 +58,7 @@ class JobApiClient(BaseAPIClient):
job['notifications_sent'] = stats['delivered'] + stats['failed']
job['notifications_delivered'] = stats['delivered']
job['notifications_failed'] = stats['failed']
job['notifications_requested'] = stats['requested']
return jobs

View File

@@ -154,6 +154,7 @@ def test_client_parses_job_stats(mocker):
result = client.get_job(service_id, job_id)
mock_get.assert_called_once_with(url=expected_url, params={})
assert result['data']['notifications_requested'] == 80
assert result['data']['notifications_sent'] == 50
assert result['data']['notification_count'] == 80
assert result['data']['notifications_failed'] == 40
@@ -191,6 +192,7 @@ def test_client_parses_empty_job_stats(mocker):
result = client.get_job(service_id, job_id)
mock_get.assert_called_once_with(url=expected_url, params={})
assert result['data']['notifications_requested'] == 0
assert result['data']['notifications_sent'] == 0
assert result['data']['notification_count'] == 80
assert result['data']['notifications_failed'] == 0
@@ -265,10 +267,12 @@ def test_client_parses_job_stats_for_service(mocker):
mock_get.assert_called_once_with(url=expected_url, params={})
assert result['data'][0]['id'] == job_1_id
assert result['data'][0]['notifications_requested'] == 80
assert result['data'][0]['notifications_sent'] == 50
assert result['data'][0]['notification_count'] == 80
assert result['data'][0]['notifications_failed'] == 40
assert result['data'][1]['id'] == job_2_id
assert result['data'][1]['notifications_requested'] == 40
assert result['data'][1]['notifications_sent'] == 25
assert result['data'][1]['notification_count'] == 40
assert result['data'][1]['notifications_failed'] == 20
@@ -325,10 +329,12 @@ def test_client_parses_empty_job_stats_for_service(mocker):
mock_get.assert_called_once_with(url=expected_url, params={})
assert result['data'][0]['id'] == job_1_id
assert result['data'][0]['notifications_requested'] == 0
assert result['data'][0]['notifications_sent'] == 0
assert result['data'][0]['notification_count'] == 80
assert result['data'][0]['notifications_failed'] == 0
assert result['data'][1]['id'] == job_2_id
assert result['data'][1]['notifications_requested'] == 0
assert result['data'][1]['notifications_sent'] == 0
assert result['data'][1]['notification_count'] == 40
assert result['data'][1]['notifications_failed'] == 0