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)