Refactor mock_get_uploads to return more realistic data.

This commit is contained in:
Rebecca Law
2019-12-06 13:22:25 +00:00
parent f9e01e0b45
commit 673a0d64d0
2 changed files with 22 additions and 31 deletions
+4 -4
View File
@@ -48,18 +48,18 @@ def uploads(service_id):
# No tests have been written, this has been quickly prepared for user research.
# It's also very like that a new view will be created to show uploads.
page = int(request.args.get('page', 1))
jobs_response = job_api_client.get_uploads(service_id, page=page)
uploads_response = job_api_client.get_uploads(service_id, page=page)
prev_page = None
if jobs_response['links'].get('prev', None):
if uploads_response['links'].get('prev', None):
prev_page = generate_previous_dict('main.uploads', service_id, page)
next_page = None
if jobs_response['links'].get('next', None):
if uploads_response['links'].get('next', None):
next_page = generate_next_dict('main.uploads', service_id, page)
return render_template(
'views/jobs/jobs.html',
jobs=jobs_response['data'],
jobs=uploads_response['data'],
page=page,
prev_page=prev_page,
next_page=next_page,
+18 -27
View File
@@ -1938,38 +1938,29 @@ def mock_get_jobs(mocker, api_user_active):
@pytest.fixture(scope='function')
def mock_get_uploads(mocker, api_user_active):
def _get_jobs(service_id, limit_days=None, statuses=None, page=1):
if statuses is None:
statuses = ['', 'scheduled', 'pending', 'cancelled', 'finished']
jobs = [
job_json(
service_id,
api_user_active,
original_file_name=filename,
scheduled_for=scheduled_for,
job_status=job_status,
template_version=template_version,
)
for filename, scheduled_for, job_status, template_version in (
('export 1/1/2016.xls', '', 'finished', 1),
('all email addresses.xlsx', '', 'pending', 1),
('applicants.ods', '', 'finished', 1),
('thisisatest.csv', '', 'finished', 2),
('send_me_later.csv', '2016-01-01 11:09:00.061258', 'scheduled', 1),
('even_later.csv', '2016-01-01 23:09:00.061258', 'scheduled', 1),
('full_of_regret.csv', '2016-01-01 23:09:00.061258', 'cancelled', 1)
)
]
def _get_uploads(service_id, limit_days=None, statuses=None, page=1):
uploads = [{'id': 'job_id_1',
'original_file_name': 'some.csv',
'notification_count': 10,
'created_at': '2016-01-01 11:09:00.061258',
'statistics': [{'count': 8, 'status': 'delivered'}, {'count': 2, 'status': 'temporary-failure'}],
'upload_type': 'job'},
{'id': 'job_id_1',
'original_file_name': 'some.csv',
'notification_count': 1,
'created_at': '2016-01-01 11:09:00.061258',
'statistics': [{'count': 1, 'status': 'delivered'}],
'upload_type': 'letter'}
]
return {
'data': [job for job in jobs if job['job_status'] in statuses],
'data': uploads,
'links': {
'prev': 'services/{}/jobs?page={}'.format(service_id, page - 1),
'next': 'services/{}/jobs?page={}'.format(service_id, page + 1)
'prev': 'services/{}/uploads?page={}'.format(service_id, page - 1),
'next': 'services/{}/uploads?page={}'.format(service_id, page + 1)
}
}
return mocker.patch('app.job_api_client.get_uploads', side_effect=_get_jobs)
return mocker.patch('app.job_api_client.get_uploads', side_effect=_get_uploads)
@pytest.fixture(scope='function')