diff --git a/app/models/job.py b/app/models/job.py index 5cd92c3a0..dfe44f45d 100644 --- a/app/models/job.py +++ b/app/models/job.py @@ -30,6 +30,7 @@ class Job(JSONModel): 'processing_started', 'notification_count', 'created_by', + 'template_type', } @classmethod @@ -132,10 +133,6 @@ class Job(JSONModel): version=self.template_version, )['data'] - @property - def template_type(self): - return self.template['template_type'] - @property def percentage_complete(self): return self.notifications_requested / self.notification_count * 100 diff --git a/app/templates/partials/jobs/notifications.html b/app/templates/partials/jobs/notifications.html index 842a9d805..86c52fb57 100644 --- a/app/templates/partials/jobs/notifications.html +++ b/app/templates/partials/jobs/notifications.html @@ -25,21 +25,21 @@
{% endif %} - {% if template.template_type == 'letter' %} + {% if job.template_type == 'letter' %}
{% endif %} {% if job.still_processing %} -

+

Report is {{ "{:.0f}%".format(job.percentage_complete * 0.99) }} complete…

{% elif notifications %} -

+

Download this report{{ time_left }}

{% endif %} - {% if template.template_type == 'letter' %} + {% if job.template_type == 'letter' %}
{% endif %} diff --git a/tests/__init__.py b/tests/__init__.py index 70f04ed12..eaaf86886 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -354,6 +354,7 @@ def job_json( job_id=None, template_id=None, template_version=1, + template_type='sms', created_at=None, bucket_name='', original_file_name="thisisatest.csv", @@ -375,6 +376,7 @@ def job_json( 'service': service_id, 'template': template_id, 'template_version': template_version, + 'template_type': template_type, 'original_file_name': original_file_name, 'created_at': created_at, 'notification_count': notification_count, diff --git a/tests/app/main/views/test_jobs.py b/tests/app/main/views/test_jobs.py index 2a9e7b69e..23e012b1f 100644 --- a/tests/app/main/views/test_jobs.py +++ b/tests/app/main/views/test_jobs.py @@ -398,7 +398,7 @@ def test_should_show_old_job( def test_should_show_letter_job( client_request, mock_get_service_letter_template, - mock_get_job, + mock_get_letter_job, mock_get_service_data_retention, fake_uuid, mocker, @@ -460,7 +460,7 @@ def test_should_show_letter_job( def test_should_show_letter_job_with_banner_after_sending_before_1730( client_request, mock_get_service_letter_template, - mock_get_job, + mock_get_letter_job, mock_get_notifications, mock_get_service_data_retention, fake_uuid, @@ -483,7 +483,7 @@ def test_should_show_letter_job_with_banner_after_sending_before_1730( def test_should_show_letter_job_with_banner_when_there_are_multiple_CSV_rows( client_request, mock_get_service_letter_template, - mock_get_job_in_progress, + mock_get_letter_job_in_progress, mock_get_notifications, mock_get_service_data_retention, fake_uuid, @@ -506,7 +506,7 @@ def test_should_show_letter_job_with_banner_when_there_are_multiple_CSV_rows( def test_should_show_letter_job_with_banner_after_sending_after_1730( client_request, mock_get_service_letter_template, - mock_get_job, + mock_get_letter_job, mock_get_notifications, mock_get_service_data_retention, fake_uuid, @@ -601,7 +601,8 @@ def test_should_cancel_letter_job( active_user_with_permissions, job_id=job_id, created_at="2019-06-20T15:30:00.000001+00:00", - job_status="finished" + job_status="finished", + template_type="letter", ) mocker.patch('app.job_api_client.get_job', side_effect=[{"data": job}]) notifications_json = notification_json(SERVICE_ONE_ID, job=job, status="created", template_type="letter") @@ -819,7 +820,7 @@ def test_time_left(job_created_at, expected_message): def test_should_show_letter_job_with_first_class_if_notifications_are_first_class( client_request, mock_get_service_letter_template, - mock_get_job, + mock_get_letter_job, mock_get_service_data_retention, fake_uuid, mocker, @@ -840,7 +841,7 @@ def test_should_show_letter_job_with_first_class_if_notifications_are_first_clas def test_should_show_letter_job_with_first_class_if_no_notifications( client_request, service_one, - mock_get_job, + mock_get_letter_job, fake_uuid, mock_get_notifications_with_no_notifications, mock_get_service_data_retention, diff --git a/tests/conftest.py b/tests/conftest.py index 3b3cd7ed6..046d3f7ad 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1656,6 +1656,14 @@ def mock_get_job(mocker, api_user_active): return mocker.patch('app.job_api_client.get_job', side_effect=_get_job) +@pytest.fixture(scope='function') +def mock_get_letter_job(mocker, api_user_active): + def _get_job(service_id, job_id): + return {"data": job_json(service_id, api_user_active, job_id=job_id, template_type='letter')} + + return mocker.patch('app.job_api_client.get_job', side_effect=_get_job) + + @pytest.fixture def mock_get_job_doesnt_exist(mocker): def _get_job(service_id, job_id): @@ -1705,6 +1713,20 @@ def mock_get_job_in_progress(mocker, api_user_active): return mocker.patch('app.job_api_client.get_job', side_effect=_get_job) +@pytest.fixture(scope='function') +def mock_get_letter_job_in_progress(mocker, api_user_active): + def _get_job(service_id, job_id): + return {"data": job_json( + service_id, api_user_active, job_id=job_id, + notification_count=10, + notifications_requested=5, + job_status='processing', + template_type='letter', + )} + + return mocker.patch('app.job_api_client.get_job', side_effect=_get_job) + + @pytest.fixture(scope='function') def mock_has_jobs(mocker): mocker.patch('app.job_api_client.has_jobs', return_value=True)