diff --git a/app/main/views/send.py b/app/main/views/send.py index 94c7dc978..4615491a9 100644 --- a/app/main/views/send.py +++ b/app/main/views/send.py @@ -243,7 +243,7 @@ def check_messages(service_id, template_type, upload_id): ) if request.args.get('from_test') and len(template.placeholders): - extra_args = {'help': 1} if request.args.get('help') else {} + extra_args = {'help': 1} if request.args.get('help', '0') != '0' else {} back_link = url_for( '.send_test', service_id=service_id, template_id=template.id, **extra_args ) diff --git a/tests/app/main/views/test_send.py b/tests/app/main/views/test_send.py index 58fbe8efd..8c69ddc16 100644 --- a/tests/app/main/views/test_send.py +++ b/tests/app/main/views/test_send.py @@ -5,6 +5,7 @@ from io import BytesIO from os import path from glob import glob from bs4 import BeautifulSoup +from functools import partial from flask import url_for from tests import validate_route_permission from datetime import datetime @@ -630,6 +631,23 @@ def test_check_messages_back_link_with_help(app_, assert url_for('.send_test', service_id=fake_uuid, template_id=fake_uuid, help=1) in content +@pytest.mark.parametrize( + 'extra_args,expected_url', + [ + ( + dict(), + partial(url_for, '.send_test') + ), + ( + dict(help='0'), + partial(url_for, '.send_test') + ), + ( + dict(help='2'), + partial(url_for, '.send_test', help='1') + ) + ] +) def test_check_messages_back_link_without_help(app_, api_user_active, mock_login, @@ -640,7 +658,9 @@ def test_check_messages_back_link_without_help(app_, mock_has_permissions, mock_get_service_statistics_for_day, mock_s3_download, - fake_uuid): + fake_uuid, + extra_args, + expected_url): with app_.test_request_context(): with app_.test_client() as client: client.login(api_user_active) @@ -654,11 +674,14 @@ def test_check_messages_back_link_without_help(app_, service_id=fake_uuid, upload_id=fake_uuid, template_type='sms', - from_test=True) - ) + from_test=True, + **extra_args + )) assert response.status_code == 200 - content = response.get_data(as_text=True) - assert url_for('.send_test', service_id=fake_uuid, template_id=fake_uuid) in content + page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser') + assert ( + page.findAll('a', {'class': 'page-footer-back-link'})[0]['href'] + ) == expected_url(service_id=fake_uuid, template_id=fake_uuid) def test_send_and_check_page_renders_if_no_statistics(