diff --git a/app/main/forms.py b/app/main/forms.py index 0312537ef..04c51202f 100644 --- a/app/main/forms.py +++ b/app/main/forms.py @@ -859,9 +859,6 @@ class LetterUploadPostageForm(StripWhitespaceForm): default='second', validators=[DataRequired()] ) - file_id = HiddenField( - validators=[DataRequired()] - ) class ForgotPasswordForm(StripWhitespaceForm): diff --git a/app/main/views/uploads.py b/app/main/views/uploads.py index 672f5b83c..af375dc8f 100644 --- a/app/main/views/uploads.py +++ b/app/main/views/uploads.py @@ -338,15 +338,13 @@ def view_letter_upload_as_preview(service_id, file_id): return TemplatePreview.from_valid_pdf_file(pdf_file, page) -@main.route("/services//upload-letter/send", methods=['POST']) @main.route("/services//upload-letter/send/", methods=['POST']) @user_has_permissions('send_messages', restrict_admin_usage=True) def send_uploaded_letter(service_id, file_id=None): if not (current_service.has_permission('letter') and current_service.has_permission('upload_letters')): abort(403) - form = LetterUploadPostageForm(file_id=file_id) - file_id = file_id or form.file_id.data + form = LetterUploadPostageForm() if not form.validate_on_submit(): return uploaded_letter_preview(service_id, file_id) diff --git a/tests/app/main/views/test_uploads.py b/tests/app/main/views/test_uploads.py index 163a6bee2..24614b6f8 100644 --- a/tests/app/main/views/test_uploads.py +++ b/tests/app/main/views/test_uploads.py @@ -766,40 +766,11 @@ def test_uploaded_letter_preview_image_400s_for_bad_page_type( ) -def test_send_uploaded_letter_sends_letter_and_redirects_to_notification_page(mocker, service_one, client_request): - metadata = LetterMetadata({'filename': 'my_file.pdf', 'page_count': '1', 'status': 'valid', 'recipient': 'address'}) - - mocker.patch('app.main.views.uploads.get_letter_pdf_and_metadata', return_value=('file', metadata)) - mock_send = mocker.patch('app.main.views.uploads.notification_api_client.send_precompiled_letter') - mocker.patch('app.main.views.uploads.get_letter_metadata', return_value=metadata) - - service_one['permissions'] = ['letter', 'upload_letters'] - file_id = 'abcd-1234' - - client_request.post( - 'main.send_uploaded_letter', - service_id=SERVICE_ONE_ID, - _data={'filename': 'my_file.pdf', 'file_id': file_id, 'postage': 'first'}, - _expected_redirect=url_for( - 'main.view_notification', - service_id=SERVICE_ONE_ID, - notification_id=file_id, - _external=True - ) - ) - mock_send.assert_called_once_with(SERVICE_ONE_ID, 'my_file.pdf', file_id, 'first', 'address') - - -@pytest.mark.parametrize('form_data', ( - {'filename': 'my_file.pdf', 'postage': 'first'}, - {'filename': 'my_file.pdf', 'postage': 'first', 'file_id': 'Ignored in favour of URL'}, -)) -def test_send_uploaded_letter_accepts_file_id_in_url( +def test_send_uploaded_letter_sends_letter_and_redirects_to_notification_page( mocker, service_one, client_request, fake_uuid, - form_data, ): metadata = LetterMetadata({'filename': 'my_file.pdf', 'page_count': '1', 'status': 'valid', 'recipient': 'address'}) @@ -813,7 +784,7 @@ def test_send_uploaded_letter_accepts_file_id_in_url( 'main.send_uploaded_letter', service_id=SERVICE_ONE_ID, file_id=fake_uuid, - _data=form_data, + _data={'filename': 'my_file.pdf', 'postage': 'first'}, _expected_redirect=url_for( 'main.view_notification', service_id=SERVICE_ONE_ID, @@ -824,31 +795,6 @@ def test_send_uploaded_letter_accepts_file_id_in_url( mock_send.assert_called_once_with(SERVICE_ONE_ID, 'my_file.pdf', fake_uuid, 'first', 'address') -def test_send_uploaded_letter_needs_file_id_in_form_if_not_in_url( - mocker, - service_one, - client_request, - mock_template_preview, - fake_uuid, -): - metadata = LetterMetadata({'filename': 'my_file.pdf', 'page_count': '1', 'status': 'valid', 'recipient': 'address'}) - - mock_send = mocker.patch('app.main.views.uploads.notification_api_client.send_precompiled_letter') - mocker.patch('app.main.views.uploads.get_letter_metadata', return_value=metadata) - mocker.patch('app.main.views.uploads.service_api_client.get_precompiled_template') - - service_one['permissions'] = ['letter', 'upload_letters'] - - client_request.post( - 'main.send_uploaded_letter', - service_id=SERVICE_ONE_ID, - _data={'filename': 'my_file.pdf', 'postage': 'first'}, - _expected_status=200, - _expected_redirect=None, - ) - assert mock_send.called is False - - @pytest.mark.parametrize('permissions', [ ['email'], ['letter'], @@ -859,23 +805,26 @@ def test_send_uploaded_letter_when_service_does_not_have_correct_permissions( service_one, client_request, permissions, + fake_uuid, ): mocker.patch('app.main.views.uploads.get_letter_pdf_and_metadata', return_value=('file', {'status': 'valid'})) mock_send = mocker.patch('app.main.views.uploads.notification_api_client.send_precompiled_letter') service_one['permissions'] = permissions - file_id = 'abcd-1234' client_request.post( 'main.send_uploaded_letter', service_id=SERVICE_ONE_ID, - _data={'filename': 'my_file.pdf', 'file_id': file_id, 'postage': 'first'}, + file_id=fake_uuid, + _data={'filename': 'my_file.pdf', 'postage': 'first'}, _expected_status=403 ) assert not mock_send.called -def test_send_uploaded_letter_when_metadata_states_pdf_is_invalid(mocker, service_one, client_request): +def test_send_uploaded_letter_when_metadata_states_pdf_is_invalid( + mocker, service_one, client_request, fake_uuid, +): mock_send = mocker.patch('app.main.views.uploads.notification_api_client.send_precompiled_letter') mocker.patch( 'app.main.views.uploads.get_letter_metadata', @@ -888,12 +837,12 @@ def test_send_uploaded_letter_when_metadata_states_pdf_is_invalid(mocker, servic ) service_one['permissions'] = ['letter', 'upload_letters'] - file_id = 'abcd-1234' client_request.post( 'main.send_uploaded_letter', service_id=SERVICE_ONE_ID, - _data={'filename': 'my_file.pdf', 'file_id': file_id}, + file_id=fake_uuid, + _data={'filename': 'my_file.pdf'}, _expected_status=403 ) assert not mock_send.called