diff --git a/app/models/job.py b/app/models/job.py index 7561ef777..3dfacbb16 100644 --- a/app/models/job.py +++ b/app/models/job.py @@ -107,7 +107,7 @@ class Job(JSONModel): @property def still_processing(self): return ( - self.percentage_complete < 100 and self.status != 'finished' + self.status != 'finished' or self.percentage_complete < 100 ) @cached_property diff --git a/tests/app/models/test_job.py b/tests/app/models/test_job.py new file mode 100644 index 000000000..e43d8c08f --- /dev/null +++ b/tests/app/models/test_job.py @@ -0,0 +1,31 @@ +import pytest + +from app.models.job import Job +from tests import job_json, user_json +from tests.conftest import SERVICE_ONE_ID + + +@pytest.mark.parametrize( + 'job_status, num_notifications_created, expected_still_processing', + [ + ('scheduled', 0, True), + ('cancelled', 10, True), + ('finished', 5, True), + ('finished', 10, False), + ] +) +def test_still_processing( + notify_admin, + job_status, + num_notifications_created, + expected_still_processing +): + json = job_json( + service_id=SERVICE_ONE_ID, + created_by=user_json(), + notification_count=10, + notifications_requested=num_notifications_created, + job_status=job_status + ) + job = Job(json) + assert job.still_processing == expected_still_processing