Merge pull request #1355 from alphagov/fix-page-title-notification

Fix page title on notification page
This commit is contained in:
Chris Hill-Scott
2017-07-06 14:08:37 +01:00
committed by GitHub
14 changed files with 38 additions and 24 deletions

View File

@@ -1,5 +1,5 @@
{% extends "withoutnav_template.html" %}
{% block per_page_title %}Page not found{% endblock %}
{% block per_page_title %}Page could not be found{% endblock %}
{% block maincolumn_content %}
<div class="grid-row">
<div class="column-two-thirds">

View File

@@ -14,7 +14,7 @@
{% endmacro %}
{% block service_page_title %}
{{ "Error" if errors else "Preview" }}
{{ "Error" if errors else "Preview of {}".format(template.name) }}
{% endblock %}
{% block maincolumn_content %}

View File

@@ -3,7 +3,7 @@
{% from "components/message-count-label.html" import message_count_label %}
{% block service_page_title %}
{{ "Error" if error else "Preview" }}
{{ "Error" if error else "Preview of {}".format(template.name) }}
{% endblock %}
{% block maincolumn_content %}

View File

@@ -5,7 +5,7 @@
{% from "components/page-footer.html" import page_footer %}
{% block service_page_title %}
Report
{{ message_count_label(1, template.template_type, suffix='') | capitalize }}
{% endblock %}
{% block maincolumn_content %}

View File

@@ -8,8 +8,7 @@ from bs4 import BeautifulSoup
from app.main.views.jobs import get_time_left, get_status_filters
from tests import notification_json
from tests.conftest import SERVICE_ONE_ID, mock_get_notifications
from tests.app.test_utils import normalize_spaces
from tests.conftest import SERVICE_ONE_ID, mock_get_notifications, normalize_spaces
from freezegun import freeze_time

View File

@@ -8,7 +8,7 @@ from notifications_python_client.errors import HTTPError
from tests.conftest import (
SERVICE_ONE_ID,
)
from tests.app.test_utils import normalize_spaces
from tests.conftest import normalize_spaces
from freezegun import freeze_time
from unittest import mock
from app.main.views.conversation import get_user_number

View File

@@ -21,8 +21,8 @@ from tests.conftest import (
SERVICE_ONE_ID,
mock_get_inbound_sms_summary,
mock_get_inbound_sms_summary_with_no_messages,
normalize_spaces,
)
from tests.app.test_utils import normalize_spaces
stub_template_stats = [
{

View File

@@ -8,8 +8,7 @@ from bs4 import BeautifulSoup
from app.main.views.jobs import get_time_left, get_status_filters
from tests import notification_json
from tests.app.test_utils import normalize_spaces
from tests.conftest import SERVICE_ONE_ID
from tests.conftest import SERVICE_ONE_ID, normalize_spaces
from freezegun import freeze_time

View File

@@ -8,8 +8,7 @@ from app.utils import (
DELIVERED_STATUSES,
)
from tests.app.test_utils import normalize_spaces
from tests.conftest import mock_get_notification, SERVICE_ONE_ID
from tests.conftest import mock_get_notification, SERVICE_ONE_ID, normalize_spaces
@pytest.mark.parametrize('notification_status, expected_status', [

View File

@@ -15,7 +15,6 @@ from notifications_utils.template import LetterPreviewTemplate, LetterImageTempl
from notifications_utils.recipients import RecipientCSV
from tests import validate_route_permission, validate_route_permission_with_client
from tests.app.test_utils import normalize_spaces
from tests.conftest import (
mock_get_service_template,
mock_get_service_template_with_placeholders,
@@ -23,6 +22,7 @@ from tests.conftest import (
mock_get_service,
mock_get_international_service,
mock_get_service_email_template,
normalize_spaces,
SERVICE_ONE_ID,
)

View File

@@ -10,7 +10,7 @@ import app
from app.main.views.service_settings import dummy_bearer_token
from app.utils import email_safe
from tests import validate_route_permission, service_json
from tests.app.test_utils import normalize_spaces
from tests.conftest import normalize_spaces
from tests.conftest import active_user_with_permissions, platform_admin_user

View File

@@ -7,9 +7,13 @@ from flask import url_for
from freezegun import freeze_time
from notifications_python_client.errors import HTTPError
from tests.conftest import service_one as create_sample_service
from tests.conftest import mock_get_service_email_template, mock_get_service_letter_template, SERVICE_ONE_ID
from tests.conftest import (
mock_get_service_email_template,
mock_get_service_letter_template,
normalize_spaces,
SERVICE_ONE_ID,
)
from tests import validate_route_permission, template_json, single_notification_json
from tests.app.test_utils import normalize_spaces
from app.main.views.templates import get_last_use_message, get_human_readable_delta

View File

@@ -154,9 +154,3 @@ def test_generate_notifications_csv_calls_twice_if_next_link(mocker):
# mock_calls[0][2] is the kwargs from first call
assert mock_get_notifications.mock_calls[0][2]['page'] == 1
assert mock_get_notifications.mock_calls[1][2]['page'] == 2
def normalize_spaces(input):
if isinstance(input, str):
return ' '.join(input.split())
return normalize_spaces(' '.join(item.text for item in input))

View File

@@ -1757,13 +1757,26 @@ def client_request(logged_in_client):
yield session
@staticmethod
def get(endpoint, _expected_status=200, _follow_redirects=False, **endpoint_kwargs):
def get(
endpoint,
_expected_status=200,
_follow_redirects=False,
_test_page_title=True,
**endpoint_kwargs
):
resp = logged_in_client.get(
url_for(endpoint, **(endpoint_kwargs or {})),
follow_redirects=_follow_redirects,
)
assert resp.status_code == _expected_status
return BeautifulSoup(resp.data.decode('utf-8'), 'html.parser')
page = BeautifulSoup(resp.data.decode('utf-8'), 'html.parser')
if _test_page_title:
page_title, h1 = (
normalize_spaces(page.find(selector).text) for selector in ('title', 'h1')
)
if not normalize_spaces(page_title).startswith(h1):
raise AssertionError('Page title {} does not start with H1 {}'.format(page_title, h1))
return page
@staticmethod
def post(endpoint, _data=None, _expected_status=None, _follow_redirects=False, **endpoint_kwargs):
@@ -1778,3 +1791,9 @@ def client_request(logged_in_client):
return BeautifulSoup(resp.data.decode('utf-8'), 'html.parser')
return ClientRequest
def normalize_spaces(input):
if isinstance(input, str):
return ' '.join(input.split())
return normalize_spaces(' '.join(item.text for item in input))