diff --git a/app/celery/scheduled_tasks.py b/app/celery/scheduled_tasks.py index c773fe739..5bac860a6 100644 --- a/app/celery/scheduled_tasks.py +++ b/app/celery/scheduled_tasks.py @@ -357,9 +357,9 @@ def run_letter_jobs(): current_app.logger.info("Queued {} ready letter job ids onto {}".format(len(job_ids), QueueNames.PROCESS_FTP)) -@notify_celery.task(name="run-letter-pdfs") +@notify_celery.task(name="trigger-letter-pdfs-for-day") @statsd(namespace="tasks") -def run_letter_pdfs(): +def trigger_letter_pdfs_for_day(): letter_pdfs_count = dao_get_count_of_letters_to_process_for_date() if letter_pdfs_count: notify_celery.send_task( diff --git a/app/config.py b/app/config.py index f92355352..295adab1c 100644 --- a/app/config.py +++ b/app/config.py @@ -240,8 +240,8 @@ class Config(object): 'schedule': crontab(hour=17, minute=30), 'options': {'queue': QueueNames.PERIODIC} }, - 'run-letter-pdfs': { - 'task': 'run-letter-pdfs', + 'trigger-letter-pdfs-for-day': { + 'task': 'trigger-letter-pdfs-for-day', 'schedule': crontab(hour=17, minute=50), 'options': {'queue': QueueNames.PERIODIC} }, diff --git a/app/dao/notifications_dao.py b/app/dao/notifications_dao.py index fc6d2b32e..0d1c6e72a 100644 --- a/app/dao/notifications_dao.py +++ b/app/dao/notifications_dao.py @@ -586,7 +586,7 @@ def dao_get_last_notification_added_for_job_id(job_id): return last_notification_added -def dao_get_count_of_letters_to_process_for_date(date_to_process=date.today()): +def dao_get_count_of_letters_to_process_for_date(date_to_process=None): """ Returns a count of letter notifications for services with letters_as_pdf permission set to be processed today if no argument passed in otherwise will return the count for @@ -595,6 +595,9 @@ def dao_get_count_of_letters_to_process_for_date(date_to_process=date.today()): Note - services without letters_as_pdf permission will be ignored """ + if date_to_process is None: + date_to_process = date.today() + day_before = date_to_process - timedelta(days=1) letter_deadline_time = current_app.config.get('LETTER_PROCESSING_DEADLINE') diff --git a/tests/app/celery/test_scheduled_tasks.py b/tests/app/celery/test_scheduled_tasks.py index 33909e4c4..699f1fa9e 100644 --- a/tests/app/celery/test_scheduled_tasks.py +++ b/tests/app/celery/test_scheduled_tasks.py @@ -24,7 +24,7 @@ from app.celery.scheduled_tasks import ( remove_transformed_dvla_files, run_scheduled_jobs, run_letter_jobs, - run_letter_pdfs, + trigger_letter_pdfs_for_day, run_letter_api_notifications, populate_monthly_billing, s3, @@ -716,7 +716,7 @@ def test_run_letter_jobs(client, mocker, sample_letter_template): @freeze_time("2017-12-18 17:50") -def test_run_letter_pdfs(client, mocker, sample_letter_template): +def test_trigger_letter_pdfs_for_day(client, mocker, sample_letter_template): dao_add_service_permission(sample_letter_template.service.id, 'letters_as_pdf') create_notification(template=sample_letter_template, created_at='2017-12-17 17:30:00') @@ -724,7 +724,7 @@ def test_run_letter_pdfs(client, mocker, sample_letter_template): mock_celery = mocker.patch("app.celery.tasks.notify_celery.send_task") - run_letter_pdfs() + trigger_letter_pdfs_for_day() mock_celery.assert_called_once_with(name='collate-letter-pdfs-for-day', args=('2017-12-18',), @@ -732,14 +732,15 @@ def test_run_letter_pdfs(client, mocker, sample_letter_template): @freeze_time("2017-12-18 17:50") -def test_run_letter_pdfs_send_task_not_called_if_no_notis_for_day(client, mocker, sample_letter_template): +def test_trigger_letter_pdfs_for_day_send_task_not_called_if_no_notis_for_day( + client, mocker, sample_letter_template): dao_add_service_permission(sample_letter_template.service.id, 'letters_as_pdf') create_notification(template=sample_letter_template, created_at='2017-12-15 17:30:00') mock_celery = mocker.patch("app.celery.tasks.notify_celery.send_task") - run_letter_pdfs() + trigger_letter_pdfs_for_day() assert not mock_celery.called