Renamed run-letter-pdfs to trigger-letter-pdfs-for-day

- also set optional date_to_process argument for dao_get_count_of_letters_to_process_for_date to None, so it's set in the code instead
This commit is contained in:
Ken Tsang
2017-12-19 13:18:56 +00:00
parent b70bf1b541
commit 8103540261
4 changed files with 14 additions and 10 deletions

View File

@@ -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)) 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") @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() letter_pdfs_count = dao_get_count_of_letters_to_process_for_date()
if letter_pdfs_count: if letter_pdfs_count:
notify_celery.send_task( notify_celery.send_task(

View File

@@ -240,8 +240,8 @@ class Config(object):
'schedule': crontab(hour=17, minute=30), 'schedule': crontab(hour=17, minute=30),
'options': {'queue': QueueNames.PERIODIC} 'options': {'queue': QueueNames.PERIODIC}
}, },
'run-letter-pdfs': { 'trigger-letter-pdfs-for-day': {
'task': 'run-letter-pdfs', 'task': 'trigger-letter-pdfs-for-day',
'schedule': crontab(hour=17, minute=50), 'schedule': crontab(hour=17, minute=50),
'options': {'queue': QueueNames.PERIODIC} 'options': {'queue': QueueNames.PERIODIC}
}, },

View File

@@ -586,7 +586,7 @@ def dao_get_last_notification_added_for_job_id(job_id):
return last_notification_added 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 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 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 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) day_before = date_to_process - timedelta(days=1)
letter_deadline_time = current_app.config.get('LETTER_PROCESSING_DEADLINE') letter_deadline_time = current_app.config.get('LETTER_PROCESSING_DEADLINE')

View File

@@ -24,7 +24,7 @@ from app.celery.scheduled_tasks import (
remove_transformed_dvla_files, remove_transformed_dvla_files,
run_scheduled_jobs, run_scheduled_jobs,
run_letter_jobs, run_letter_jobs,
run_letter_pdfs, trigger_letter_pdfs_for_day,
run_letter_api_notifications, run_letter_api_notifications,
populate_monthly_billing, populate_monthly_billing,
s3, s3,
@@ -716,7 +716,7 @@ def test_run_letter_jobs(client, mocker, sample_letter_template):
@freeze_time("2017-12-18 17:50") @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') 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') 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") 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', mock_celery.assert_called_once_with(name='collate-letter-pdfs-for-day',
args=('2017-12-18',), 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") @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') 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') 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") mock_celery = mocker.patch("app.celery.tasks.notify_celery.send_task")
run_letter_pdfs() trigger_letter_pdfs_for_day()
assert not mock_celery.called assert not mock_celery.called