Merge pull request #1077 from alphagov/fix-row-number-issue-on-report-download

Fix issue where row_number starts from 3 on a job report download
This commit is contained in:
imdadahad
2017-01-20 12:38:50 +00:00
committed by GitHub
2 changed files with 29 additions and 1 deletions

View File

@@ -164,8 +164,12 @@ def generate_notifications_csv(**kwargs):
def format_notification_for_csv(notification):
from app import format_datetime_24h, format_notification_status
# row_number can be 0 so we need to check for it
row_num = notification.get('job_row_number')
row_num = '' if row_num is None else row_num + 1
return {
'Row number': int(notification['job_row_number']) + 2 if notification.get('job_row_number') else '',
'Row number': row_num,
'Recipient': notification['to'],
'Template': notification['template']['name'],
'Type': notification['template']['template_type'],

View File

@@ -124,3 +124,27 @@ def test_generate_notifications_csv_calls_twice_if_next_link(mocker):
# mock_calls[0][2] is the kwargs from first call
assert mock_get_notifications.mock_calls[0][2]['page'] == 1
assert mock_get_notifications.mock_calls[1][2]['page'] == 2
@pytest.mark.parametrize('row_number, expected_result', [
(None, ''),
(0, '1'),
(1, '2'),
(300, '301')
])
def test_generate_notifications_csv_formats_row_number_correctly(mocker, row_number, expected_result):
service_id = '1234'
response_with_job_row_zero = notification_json(service_id, rows=1, with_links=True, job_row_number=row_number)
mocker.patch(
'app.notification_api_client.get_notifications_for_service',
side_effect=[
response_with_job_row_zero
]
)
csv_content = generate_notifications_csv(service_id=service_id)
csv = DictReader(StringIO('\n'.join(csv_content)))
csv_rows = list(csv)
assert len(csv_rows) == 1
assert csv_rows[0].get('Row number') == expected_result