diff --git a/app/celery/letters_pdf_tasks.py b/app/celery/letters_pdf_tasks.py index 0cc6bc8f0..d673c0fbb 100644 --- a/app/celery/letters_pdf_tasks.py +++ b/app/celery/letters_pdf_tasks.py @@ -185,7 +185,7 @@ def process_virus_scan_passed(self, filename): scan_pdf_object = s3.get_s3_object(current_app.config['LETTERS_SCAN_BUCKET_NAME'], filename) old_pdf = scan_pdf_object.get()['Body'].read() - new_pdf = _sanitise_precomiled_pdf(self, notification, old_pdf) + new_pdf = _sanitise_precompiled_pdf(self, notification, old_pdf) # TODO: Remove this once CYSP update their template to not cross over the margins if notification.service_id == UUID('fe44178f-3b45-4625-9f85-2264a36dd9ec'): # CYSP @@ -233,7 +233,7 @@ def _upload_pdf_to_test_or_live_pdf_bucket(pdf_data, filename, is_test_letter): ) -def _sanitise_precomiled_pdf(self, notification, precompiled_pdf): +def _sanitise_precompiled_pdf(self, notification, precompiled_pdf): try: resp = requests_post( '{}/precompiled/sanitise'.format( @@ -246,19 +246,20 @@ def _sanitise_precomiled_pdf(self, notification, precompiled_pdf): return resp.content except RequestException as ex: if ex.response is not None and ex.response.status_code == 400: - current_app.logger.exception( - "sanitise_precomiled_pdf validation error for notification: {}".format(notification.id) - ) - return None + if notification.service_id != UUID('fe44178f-3b45-4625-9f85-2264a36dd9ec'): + current_app.logger.exception( + "sanitise_precompiled_pdf validation error for notification: {}".format(notification.id) + ) + return None try: current_app.logger.exception( - "sanitise_precomiled_pdf failed for notification: {}".format(notification.id) + "sanitise_precompiled_pdf failed for notification: {}".format(notification.id) ) self.retry(queue=QueueNames.RETRY) except MaxRetriesExceededError: current_app.logger.exception( - "RETRY FAILED: sanitise_precomiled_pdf failed for notification {}".format(notification.id), + "RETRY FAILED: sanitise_precompiled_pdf failed for notification {}".format(notification.id), ) notification.status = NOTIFICATION_TECHNICAL_FAILURE diff --git a/tests/app/celery/test_letters_pdf_tasks.py b/tests/app/celery/test_letters_pdf_tasks.py index 690c7bb17..e788d732e 100644 --- a/tests/app/celery/test_letters_pdf_tasks.py +++ b/tests/app/celery/test_letters_pdf_tasks.py @@ -22,7 +22,7 @@ from app.celery.letters_pdf_tasks import ( process_virus_scan_failed, process_virus_scan_error, replay_letters_in_error, - _sanitise_precomiled_pdf + _sanitise_precompiled_pdf ) from app.letters.utils import get_letter_pdf_filename, ScanErrorType from app.models import ( @@ -357,7 +357,7 @@ def test_process_letter_task_check_virus_scan_passed( sample_letter_notification.status = NOTIFICATION_PENDING_VIRUS_CHECK sample_letter_notification.key_type = key_type mock_s3upload = mocker.patch('app.celery.letters_pdf_tasks.s3upload') - mock_sanitise = mocker.patch('app.celery.letters_pdf_tasks._sanitise_precomiled_pdf', return_value="success") + mock_sanitise = mocker.patch('app.celery.letters_pdf_tasks._sanitise_precompiled_pdf', return_value="success") process_virus_scan_passed(filename) @@ -397,7 +397,7 @@ def test_process_letter_task_check_virus_scan_passed_when_sanitise_fails( sample_letter_notification.status = NOTIFICATION_PENDING_VIRUS_CHECK sample_letter_notification.key_type = key_type mock_move_s3 = mocker.patch('app.letters.utils._move_s3_object') - mock_sanitise = mocker.patch('app.celery.letters_pdf_tasks._sanitise_precomiled_pdf', return_value=None) + mock_sanitise = mocker.patch('app.celery.letters_pdf_tasks._sanitise_precompiled_pdf', return_value=None) process_virus_scan_passed(filename) @@ -464,7 +464,7 @@ def test_sanitise_precompiled_pdf_returns_data_from_template_preview(rmock, samp rmock.post('http://localhost:9999/precompiled/sanitise', content=b'new_pdf', status_code=200) mock_celery = Mock(**{'retry.side_effect': Retry}) - res = _sanitise_precomiled_pdf(mock_celery, sample_letter_notification, b'old_pdf') + res = _sanitise_precompiled_pdf(mock_celery, sample_letter_notification, b'old_pdf') assert res == b'new_pdf' assert rmock.last_request.text == 'old_pdf' @@ -475,7 +475,7 @@ def test_sanitise_precompiled_pdf_returns_none_on_validation_error(rmock, sample rmock.post('http://localhost:9999/precompiled/sanitise', content=b'new_pdf', status_code=400) mock_celery = Mock(**{'retry.side_effect': Retry}) - res = _sanitise_precomiled_pdf(mock_celery, sample_letter_notification, b'old_pdf') + res = _sanitise_precompiled_pdf(mock_celery, sample_letter_notification, b'old_pdf') assert res is None @@ -486,7 +486,7 @@ def test_sanitise_precompiled_pdf_retries_on_http_error(rmock, sample_letter_not mock_celery = Mock(**{'retry.side_effect': Retry}) with pytest.raises(Retry): - _sanitise_precomiled_pdf(mock_celery, sample_letter_notification, b'old_pdf') + _sanitise_precompiled_pdf(mock_celery, sample_letter_notification, b'old_pdf') def test_sanitise_precompiled_pdf_sets_notification_to_technical_failure_after_too_many_errors( @@ -498,6 +498,6 @@ def test_sanitise_precompiled_pdf_sets_notification_to_technical_failure_after_t mock_celery = Mock(**{'retry.side_effect': MaxRetriesExceededError}) with pytest.raises(MaxRetriesExceededError): - _sanitise_precomiled_pdf(mock_celery, sample_letter_notification, b'old_pdf') + _sanitise_precompiled_pdf(mock_celery, sample_letter_notification, b'old_pdf') assert sample_letter_notification.status == NOTIFICATION_TECHNICAL_FAILURE