Make sure create job client can handle statistics

The create job endpoint returns the data about the job with a `data:`
wrapper. This commit makes sure that, when the client is trying to
process a job which has just been created, it looks inside the `data`
wrapper.
This commit is contained in:
Chris Hill-Scott
2016-08-31 13:20:42 +01:00
parent 0967706aed
commit be90cf2783
2 changed files with 12 additions and 3 deletions

View File

@@ -71,9 +71,10 @@ class JobApiClient(BaseAPIClient):
job = self.post(url='/service/{}/job'.format(service_id), data=data)
if 'notifications_sent' not in job['data']:
stats = self.__convert_statistics(job)
stats = self.__convert_statistics(job['data'])
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

View File

@@ -20,9 +20,17 @@ def test_client_creates_job_data_correctly(mocker, fake_uuid):
expected_url = '/service/{}/job'.format(service_id)
client = JobApiClient()
mock_post = mocker.patch('app.notify_client.job_api_client.JobApiClient.post')
mock_post = mocker.patch(
'app.notify_client.job_api_client.JobApiClient.post',
return_value={'data': dict(statistics=[], **expected_data)}
)
client.create_job(job_id, service_id, template_id, original_file_name, notification_count)
result = client.create_job(job_id, service_id, template_id, original_file_name, notification_count)
assert result['data']['notifications_requested'] == 0
assert result['data']['notifications_sent'] == 0
assert result['data']['notification_count'] == 1
assert result['data']['notifications_failed'] == 0
mock_post.assert_called_once_with(url=expected_url, data=expected_data)