Remove letters-related code (#175)

This deletes a big ol' chunk of code related to letters. It's not everything—there are still a few things that might be tied to sms/email—but it's the the heart of letters function. SMS and email function should be untouched by this.

Areas affected:

- Things obviously about letters
- PDF tasks, used for precompiling letters
- Virus scanning, used for those PDFs
- FTP, used to send letters to the printer
- Postage stuff
This commit is contained in:
Steven Reilly
2023-03-02 20:20:31 -05:00
committed by GitHub
parent b07b95f795
commit ff4190a8eb
141 changed files with 1108 additions and 12083 deletions

View File

@@ -78,59 +78,6 @@ def test_cant_cancel_normal_job(client, sample_job, mocker):
assert mock_update.call_count == 0
@freeze_time('2019-06-13 13:00')
def test_cancel_letter_job_updates_notifications_and_job_to_cancelled(sample_letter_template, admin_request, mocker):
job = create_job(template=sample_letter_template, notification_count=1, job_status='finished')
create_notification(template=job.template, job=job, status='created')
mock_get_job = mocker.patch('app.job.rest.dao_get_job_by_service_id_and_job_id', return_value=job)
mock_can_letter_job_be_cancelled = mocker.patch(
'app.job.rest.can_letter_job_be_cancelled', return_value=(True, None)
)
mock_dao_cancel_letter_job = mocker.patch('app.job.rest.dao_cancel_letter_job', return_value=1)
response = admin_request.post(
'job.cancel_letter_job',
service_id=job.service_id,
job_id=job.id,
)
mock_get_job.assert_called_once_with(job.service_id, str(job.id))
mock_can_letter_job_be_cancelled.assert_called_once_with(job)
mock_dao_cancel_letter_job.assert_called_once_with(job)
assert response == 1
@freeze_time('2019-06-13 13:00')
def test_cancel_letter_job_does_not_call_cancel_if_can_letter_job_be_cancelled_returns_False(
sample_letter_template, admin_request, mocker
):
job = create_job(template=sample_letter_template, notification_count=2, job_status='finished')
create_notification(template=job.template, job=job, status='sending')
create_notification(template=job.template, job=job, status='created')
mock_get_job = mocker.patch('app.job.rest.dao_get_job_by_service_id_and_job_id', return_value=job)
error_message = "Sorry, it's too late, letters have already been sent."
mock_can_letter_job_be_cancelled = mocker.patch(
'app.job.rest.can_letter_job_be_cancelled', return_value=(False, error_message)
)
mock_dao_cancel_letter_job = mocker.patch('app.job.rest.dao_cancel_letter_job')
response = admin_request.post(
'job.cancel_letter_job',
service_id=job.service_id,
job_id=job.id,
_expected_status=400
)
mock_get_job.assert_called_once_with(job.service_id, str(job.id))
mock_can_letter_job_be_cancelled.assert_called_once_with(job)
mock_dao_cancel_letter_job.assert_not_called
assert response["message"] == "Sorry, it's too late, letters have already been sent."
def test_create_unscheduled_job(client, sample_template, mocker, fake_uuid):
mocker.patch('app.celery.tasks.process_job.apply_async')
mocker.patch('app.job.rest.get_job_metadata_from_s3', return_value={
@@ -321,31 +268,6 @@ def test_create_job_returns_400_if_file_is_invalid(
mock_job_dao.assert_not_called()
def test_create_job_returns_403_if_letter_template_type_and_service_in_trial(
client, fake_uuid, sample_trial_letter_template, mocker
):
mocker.patch('app.job.rest.get_job_metadata_from_s3', return_value={
'template_id': str(sample_trial_letter_template.id),
'original_file_name': 'thisisatest.csv',
'notification_count': '1',
})
data = {
'id': fake_uuid,
'created_by': str(sample_trial_letter_template.created_by.id),
}
mock_job_dao = mocker.patch("app.dao.jobs_dao.dao_create_job")
auth_header = create_admin_authorization_header()
response = client.post('/service/{}/job'.format(sample_trial_letter_template.service.id),
data=json.dumps(data),
headers=[('Content-Type', 'application/json'), auth_header])
assert response.status_code == 403
resp_json = json.loads(response.get_data(as_text=True))
assert resp_json['result'] == 'error'
assert resp_json['message'] == "Create letter job is not allowed for service in trial mode "
mock_job_dao.assert_not_called()
@freeze_time("2016-01-01 11:09:00.061258")
def test_should_not_create_scheduled_job_more_then_96_hours_in_the_future(client, sample_template, mocker, fake_uuid):
scheduled_date = (datetime.utcnow() + timedelta(hours=96, minutes=1)).isoformat()