mirror of
https://github.com/GSA/notifications-api.git
synced 2026-09-05 23:58:25 -04:00
Merge pull request #1221 from alphagov/ken-no-letters-when-trial
Stop letters when service is in trial
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
import uuid
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
from functools import partial
|
||||
from unittest.mock import call, patch, PropertyMock
|
||||
@@ -44,7 +42,7 @@ from app.models import (
|
||||
SMS_TYPE, LETTER_TYPE,
|
||||
JOB_STATUS_READY_TO_SEND,
|
||||
MonthlyBilling)
|
||||
from app.utils import get_london_midnight_in_utc, convert_utc_to_bst
|
||||
from app.utils import get_london_midnight_in_utc
|
||||
from tests.app.db import create_notification, create_service, create_template, create_job, create_rate
|
||||
from tests.app.conftest import (
|
||||
sample_job as create_sample_job,
|
||||
@@ -683,7 +681,7 @@ def test_populate_monthly_billing_updates_correct_month_in_bst(sample_template):
|
||||
def test_run_letter_jobs(client, mocker, sample_letter_template):
|
||||
jobs = [create_job(template=sample_letter_template, job_status=JOB_STATUS_READY_TO_SEND),
|
||||
create_job(template=sample_letter_template, job_status=JOB_STATUS_READY_TO_SEND)]
|
||||
job_ids = [str(job.id) for job in jobs]
|
||||
job_ids = [str(j.id) for j in jobs]
|
||||
mocker.patch(
|
||||
"app.celery.scheduled_tasks.dao_get_letter_job_ids_by_status",
|
||||
return_value=job_ids
|
||||
|
||||
@@ -29,6 +29,7 @@ from app.celery.tasks import (
|
||||
update_letter_notifications_statuses,
|
||||
process_updates_from_file,
|
||||
send_inbound_sms_to_service)
|
||||
from app.config import QueueNames
|
||||
from app.dao import jobs_dao, services_dao
|
||||
from app.models import (
|
||||
Notification,
|
||||
@@ -38,7 +39,8 @@ from app.models import (
|
||||
SMS_TYPE,
|
||||
EMAIL_TYPE,
|
||||
LETTER_TYPE,
|
||||
Job)
|
||||
Job,
|
||||
JOB_STATUS_ERROR)
|
||||
|
||||
from tests.app import load_example_csv
|
||||
from tests.conftest import set_config
|
||||
@@ -608,6 +610,62 @@ def test_should_put_send_email_task_in_research_mode_queue_if_research_mode_serv
|
||||
)
|
||||
|
||||
|
||||
def test_should_not_build_dvla_file_in_research_mode_for_letter_job(
|
||||
mocker, sample_service, sample_letter_job, fake_uuid
|
||||
):
|
||||
test_encrypted_data = 'some encrypted data'
|
||||
sample_service.research_mode = True
|
||||
|
||||
csv = """address_line_1,address_line_2,address_line_3,address_line_4,postcode,name
|
||||
A1,A2,A3,A4,A_POST,Alice
|
||||
"""
|
||||
mocker.patch('app.celery.tasks.s3.get_job_from_s3', return_value=csv)
|
||||
mocker.patch('app.celery.tasks.update_job_to_sent_to_dvla.apply_async')
|
||||
mocker.patch('app.celery.tasks.persist_letter.apply_async')
|
||||
mocker.patch('app.celery.tasks.create_uuid', return_value=fake_uuid)
|
||||
mocker.patch('app.celery.tasks.encryption.encrypt', return_value=test_encrypted_data)
|
||||
mock_dvla_file_task = mocker.patch('app.celery.tasks.build_dvla_file.apply_async')
|
||||
|
||||
process_job(sample_letter_job.id)
|
||||
|
||||
assert not mock_dvla_file_task.called
|
||||
|
||||
|
||||
@freeze_time("2017-08-29 17:30:00")
|
||||
def test_should_update_job_to_sent_to_dvla_in_research_mode_for_letter_job(
|
||||
mocker, sample_service, sample_letter_job, fake_uuid
|
||||
):
|
||||
test_encrypted_data = 'some encrypted data'
|
||||
sample_service.research_mode = True
|
||||
|
||||
csv = """address_line_1,address_line_2,address_line_3,address_line_4,postcode,name
|
||||
A1,A2,A3,A4,A_POST,Alice
|
||||
"""
|
||||
mocker.patch('app.celery.tasks.s3.get_job_from_s3', return_value=csv)
|
||||
mocker.patch('app.celery.tasks.update_job_to_sent_to_dvla.apply_async')
|
||||
mocker.patch('app.celery.tasks.persist_letter.apply_async')
|
||||
mocker.patch('app.celery.tasks.create_uuid', return_value=fake_uuid)
|
||||
mocker.patch('app.celery.tasks.encryption.encrypt', return_value=test_encrypted_data)
|
||||
mock_dvla_file_task = mocker.patch('app.celery.tasks.build_dvla_file.apply_async')
|
||||
|
||||
process_job(sample_letter_job.id)
|
||||
|
||||
job = jobs_dao.dao_get_job_by_id(sample_letter_job.id)
|
||||
|
||||
persist_letter.apply_async.assert_called_once_with(
|
||||
(
|
||||
str(sample_service.id),
|
||||
fake_uuid,
|
||||
test_encrypted_data,
|
||||
datetime.utcnow().strftime(DATETIME_FORMAT)
|
||||
),
|
||||
queue=QueueNames.RESEARCH_MODE
|
||||
)
|
||||
|
||||
update_job_to_sent_to_dvla.apply_async.assert_called_once_with(
|
||||
[str(job.id)], queue=QueueNames.RESEARCH_MODE)
|
||||
|
||||
|
||||
def test_should_send_sms_template_to_and_persist_with_job_id(sample_job, sample_api_key, mocker):
|
||||
notification = _notification_json(
|
||||
sample_job.template,
|
||||
|
||||
Reference in New Issue
Block a user