mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-05 15:28:25 -04:00
Merge pull request #3154 from alphagov/no-uploading-letters-in-trial-mode
Stop allowing uploaded letters to be sent for trial mode services
This commit is contained in:
@@ -14,6 +14,14 @@
|
|||||||
<p>{{ error.detail | safe }}</p>
|
<p>{{ error.detail | safe }}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endcall %}
|
{% endcall %}
|
||||||
|
{% elif current_service.trial_mode %}
|
||||||
|
{% call banner_wrapper(type='dangerous') %}
|
||||||
|
{% with
|
||||||
|
count_of_recipients=1
|
||||||
|
%}
|
||||||
|
{% include "partials/check/trying-to-send-letters-in-trial-mode.html" %}
|
||||||
|
{% endwith %}
|
||||||
|
{% endcall %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ page_header(
|
{{ page_header(
|
||||||
original_filename,
|
original_filename,
|
||||||
@@ -25,7 +33,7 @@
|
|||||||
{{ template|string }}
|
{{ template|string }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if status == 'valid' %}
|
{% if status == 'valid' and current_service.live %}
|
||||||
<div class="js-stick-at-bottom-when-scrolling">
|
<div class="js-stick-at-bottom-when-scrolling">
|
||||||
<form method="post" enctype="multipart/form-data" action="{{url_for(
|
<form method="post" enctype="multipart/form-data" action="{{url_for(
|
||||||
'main.send_uploaded_letter',
|
'main.send_uploaded_letter',
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ def test_get_upload_letter(client_request):
|
|||||||
assert normalize_spaces(page.find('label', class_='file-upload-button').text) == 'Choose file'
|
assert normalize_spaces(page.find('label', class_='file-upload-button').text) == 'Choose file'
|
||||||
|
|
||||||
|
|
||||||
def test_post_upload_letter_redirects_for_valid_file(mocker, client_request):
|
def test_post_upload_letter_redirects_for_valid_file(mocker, active_user_with_permissions, service_one, client_request):
|
||||||
mocker.patch('uuid.uuid4', return_value='fake-uuid')
|
mocker.patch('uuid.uuid4', return_value='fake-uuid')
|
||||||
antivirus_mock = mocker.patch('app.main.views.uploads.antivirus_client.scan', return_value=True)
|
antivirus_mock = mocker.patch('app.main.views.uploads.antivirus_client.scan', return_value=True)
|
||||||
mocker.patch(
|
mocker.patch(
|
||||||
@@ -38,6 +38,9 @@ def test_post_upload_letter_redirects_for_valid_file(mocker, client_request):
|
|||||||
'filename': 'tests/test_pdf_files/one_page_pdf.pdf', 'page_count': '1', 'status': 'valid'})
|
'filename': 'tests/test_pdf_files/one_page_pdf.pdf', 'page_count': '1', 'status': 'valid'})
|
||||||
mocker.patch('app.main.views.uploads.service_api_client.get_precompiled_template')
|
mocker.patch('app.main.views.uploads.service_api_client.get_precompiled_template')
|
||||||
|
|
||||||
|
service_one['restricted'] = False
|
||||||
|
client_request.login(active_user_with_permissions, service=service_one)
|
||||||
|
|
||||||
with open('tests/test_pdf_files/one_page_pdf.pdf', 'rb') as file:
|
with open('tests/test_pdf_files/one_page_pdf.pdf', 'rb') as file:
|
||||||
page = client_request.post(
|
page = client_request.post(
|
||||||
'main.upload_letter',
|
'main.upload_letter',
|
||||||
@@ -62,7 +65,12 @@ def test_post_upload_letter_redirects_for_valid_file(mocker, client_request):
|
|||||||
assert page.find('button', {'type': 'submit'}).text == 'Send 1 letter'
|
assert page.find('button', {'type': 'submit'}).text == 'Send 1 letter'
|
||||||
|
|
||||||
|
|
||||||
def test_post_upload_letter_shows_letter_preview_for_valid_file(mocker, client_request):
|
def test_post_upload_letter_shows_letter_preview_for_valid_file(
|
||||||
|
mocker,
|
||||||
|
active_user_with_permissions,
|
||||||
|
service_one,
|
||||||
|
client_request,
|
||||||
|
):
|
||||||
letter_template = {'template_type': 'letter',
|
letter_template = {'template_type': 'letter',
|
||||||
'reply_to_text': '',
|
'reply_to_text': '',
|
||||||
'postage': 'second',
|
'postage': 'second',
|
||||||
@@ -81,6 +89,9 @@ def test_post_upload_letter_shows_letter_preview_for_valid_file(mocker, client_r
|
|||||||
'filename': 'tests/test_pdf_files/one_page_pdf.pdf', 'page_count': '3', 'status': 'valid'})
|
'filename': 'tests/test_pdf_files/one_page_pdf.pdf', 'page_count': '3', 'status': 'valid'})
|
||||||
mocker.patch('app.main.views.uploads.service_api_client.get_precompiled_template', return_value=letter_template)
|
mocker.patch('app.main.views.uploads.service_api_client.get_precompiled_template', return_value=letter_template)
|
||||||
|
|
||||||
|
service_one['restricted'] = False
|
||||||
|
client_request.login(active_user_with_permissions, service=service_one)
|
||||||
|
|
||||||
with open('tests/test_pdf_files/one_page_pdf.pdf', 'rb') as file:
|
with open('tests/test_pdf_files/one_page_pdf.pdf', 'rb') as file:
|
||||||
page = client_request.post(
|
page = client_request.post(
|
||||||
'main.upload_letter',
|
'main.upload_letter',
|
||||||
@@ -281,11 +292,14 @@ def test_post_upload_letter_does_not_upload_to_s3_if_template_preview_raises_unk
|
|||||||
assert not mock_s3.called
|
assert not mock_s3.called
|
||||||
|
|
||||||
|
|
||||||
def test_uploaded_letter_preview(mocker, client_request):
|
def test_uploaded_letter_preview(mocker, active_user_with_permissions, service_one, client_request):
|
||||||
mocker.patch('app.main.views.uploads.service_api_client')
|
mocker.patch('app.main.views.uploads.service_api_client')
|
||||||
mocker.patch('app.main.views.uploads.get_letter_metadata', return_value={
|
mocker.patch('app.main.views.uploads.get_letter_metadata', return_value={
|
||||||
'filename': 'my_letter.pdf', 'page_count': '1', 'status': 'valid'})
|
'filename': 'my_letter.pdf', 'page_count': '1', 'status': 'valid'})
|
||||||
|
|
||||||
|
service_one['restricted'] = False
|
||||||
|
client_request.login(active_user_with_permissions, service=service_one)
|
||||||
|
|
||||||
page = client_request.get(
|
page = client_request.get(
|
||||||
'main.uploaded_letter_preview',
|
'main.uploaded_letter_preview',
|
||||||
service_id=SERVICE_ONE_ID,
|
service_id=SERVICE_ONE_ID,
|
||||||
@@ -300,6 +314,28 @@ def test_uploaded_letter_preview(mocker, client_request):
|
|||||||
assert page.find('div', class_='letter-sent')
|
assert page.find('div', class_='letter-sent')
|
||||||
|
|
||||||
|
|
||||||
|
def test_uploaded_letter_preview_does_not_show_send_button_if_service_in_trial_mode(mocker, client_request):
|
||||||
|
mocker.patch('app.main.views.uploads.service_api_client')
|
||||||
|
mocker.patch('app.main.views.uploads.get_letter_metadata', return_value={
|
||||||
|
'filename': 'my_letter.pdf', 'page_count': '1', 'status': 'valid'})
|
||||||
|
|
||||||
|
# client_request uses service_one, which is in trial mode
|
||||||
|
page = client_request.get(
|
||||||
|
'main.uploaded_letter_preview',
|
||||||
|
service_id=SERVICE_ONE_ID,
|
||||||
|
file_id='fake-uuid',
|
||||||
|
original_filename='my_letter.pdf',
|
||||||
|
page_count=1,
|
||||||
|
status='valid',
|
||||||
|
error={},
|
||||||
|
_test_page_title=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
assert normalize_spaces(page.find('h1').text) == 'You cannot send this letter'
|
||||||
|
assert page.find('div', class_='letter-sent')
|
||||||
|
assert not page.find('button', {'type': 'submit'})
|
||||||
|
|
||||||
|
|
||||||
def test_uploaded_letter_preview_image_shows_overlay_when_content_outside_printable_area(
|
def test_uploaded_letter_preview_image_shows_overlay_when_content_outside_printable_area(
|
||||||
mocker,
|
mocker,
|
||||||
logged_in_client,
|
logged_in_client,
|
||||||
|
|||||||
Reference in New Issue
Block a user