From edf54d8fe0b35754b9c3626d271319bbf517c353 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Fri, 25 Aug 2017 14:17:23 +0100 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20show=20trial=20mode=20error=20i?= =?UTF-8?q?f=20making=20test=20letter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We don’t want users in trial mode sending real letters. So we’ve introduced an error message. This error message is also showing up when users in trial mode and making a test letter (and having the knock on effect of hiding the download button). They should be able to make a test letter in trial mode, because it doesn’t cost anything. --- app/main/views/send.py | 8 +++++--- tests/app/main/views/test_send.py | 32 +++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/app/main/views/send.py b/app/main/views/send.py index b1a1cc53e..870fdcb48 100644 --- a/app/main/views/send.py +++ b/app/main/views/send.py @@ -440,9 +440,11 @@ def _check_messages(service_id, template_type, upload_id, letters_as_pdf=False): choose_time_form=choose_time_form, back_link=back_link, help=get_help_argument(), - trying_to_send_letters_in_trial_mode=bool( - current_service['restricted'] and template.template_type == 'letter' - ), + trying_to_send_letters_in_trial_mode=all(( + current_service['restricted'], + template.template_type == 'letter', + not request.args.get('from_test'), + )), ) diff --git a/tests/app/main/views/test_send.py b/tests/app/main/views/test_send.py index 06504e8c0..d80548416 100644 --- a/tests/app/main/views/test_send.py +++ b/tests/app/main/views/test_send.py @@ -1631,6 +1631,38 @@ def test_check_messages_shows_trial_mode_error_for_letters( assert not error +def test_generate_test_letter_doesnt_block_in_trial_mode( + client_request, + mocker, + mock_get_service, + mock_get_service_letter_template, + mock_has_permissions, + mock_get_users_by_service, + mock_get_detailed_service_for_today, +): + + mocker.patch('app.main.views.send.s3download', return_value=""" + address_line_1,address_line_2,postcode, + First Last, 123 Street, SW1 1AA + """) + + with client_request.session_transaction() as session: + session['upload_data'] = {'template_id': ''} + + page = client_request.get( + 'main.check_messages', + service_id=SERVICE_ONE_ID, + template_type='letter', + upload_id=uuid.uuid4(), + from_test=True, + _test_page_title=False, + ) + + assert not page.select('.banner-dangerous') + + assert page.select_one('a.button').text == 'Download as a printable PDF' + + def test_check_messages_shows_over_max_row_error( logged_in_client, api_user_active,