mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-09 17:45:32 -04:00
Add a ‘private’ preview email template endpoint
This will make working on the email template easier. Includes examples of features like lists, headings, blockquotes, etc.
This commit is contained in:
@@ -1,12 +1,15 @@
|
|||||||
import markdown
|
import markdown
|
||||||
import os
|
import os
|
||||||
from flask import (render_template, url_for, redirect, Markup)
|
from flask import (render_template, url_for, redirect, Markup, request)
|
||||||
from app.main import main
|
from app.main import main
|
||||||
|
from app import convert_to_boolean
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
|
|
||||||
from flask.ext.login import current_user
|
from flask.ext.login import current_user
|
||||||
from mdx_gfm import GithubFlavoredMarkdownExtension
|
from mdx_gfm import GithubFlavoredMarkdownExtension
|
||||||
|
|
||||||
|
from notifications_utils.renderers import HTMLEmail
|
||||||
|
|
||||||
|
|
||||||
@main.route('/')
|
@main.route('/')
|
||||||
def index():
|
def index():
|
||||||
@@ -46,6 +49,42 @@ def delivery_and_failure():
|
|||||||
return render_template('views/delivery-and-failure.html')
|
return render_template('views/delivery-and-failure.html')
|
||||||
|
|
||||||
|
|
||||||
|
@main.route('/_email')
|
||||||
|
def email_template():
|
||||||
|
return HTMLEmail(
|
||||||
|
govuk_banner=convert_to_boolean(request.args.get('govuk_banner', True))
|
||||||
|
)(
|
||||||
|
'Lorem Ipsum is simply dummy text of the printing and typesetting '
|
||||||
|
'industry.\n\nLorem Ipsum has been the industry’s standard dummy '
|
||||||
|
'text ever since the 1500s, when an unknown printer took a galley '
|
||||||
|
'of type and scrambled it to make a type specimen book. '
|
||||||
|
'\n\n'
|
||||||
|
'# History'
|
||||||
|
'\n\n'
|
||||||
|
'It has '
|
||||||
|
'survived not only'
|
||||||
|
'\n'
|
||||||
|
'*five centuries'
|
||||||
|
'\n'
|
||||||
|
'* but also the leap into electronic typesetting'
|
||||||
|
'\n\n'
|
||||||
|
'It was '
|
||||||
|
'popularised in the 1960s with the release of Letraset sheets '
|
||||||
|
'containing Lorem Ipsum passages, and more recently with desktop '
|
||||||
|
'publishing software like Aldus PageMaker including versions of '
|
||||||
|
'Lorem Ipsum.'
|
||||||
|
'\n\n'
|
||||||
|
'^ It is a long established fact that a reader will be distracted '
|
||||||
|
'by the readable content of a page when looking at its layout.'
|
||||||
|
'\n\n'
|
||||||
|
'The point of using Lorem Ipsum is that it has a more-or-less '
|
||||||
|
'normal distribution of letters, as opposed to using ‘Content '
|
||||||
|
'here, content here’, making it look like readable English.'
|
||||||
|
'\n\n\n'
|
||||||
|
'This is an example of an email sent using GOV.UK Notify.'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@main.route('/documentation')
|
@main.route('/documentation')
|
||||||
def documentation():
|
def documentation():
|
||||||
curr_dir = os.path.dirname(os.path.realpath(__file__))
|
curr_dir = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|||||||
@@ -18,4 +18,4 @@ pytz==2016.4
|
|||||||
|
|
||||||
git+https://github.com/alphagov/notifications-python-client.git@1.0.0#egg=notifications-python-client==1.0.0
|
git+https://github.com/alphagov/notifications-python-client.git@1.0.0#egg=notifications-python-client==1.0.0
|
||||||
|
|
||||||
git+https://github.com/alphagov/notifications-utils.git@6.2.0#egg=notifications-utils==6.2.0
|
git+https://github.com/alphagov/notifications-utils.git@8.3.0#egg=notifications-utils==8.3.0
|
||||||
|
|||||||
23
tests/app/main/views/test_email_preview.py
Normal file
23
tests/app/main/views/test_email_preview.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
import pytest
|
||||||
|
from flask import url_for
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"query_args, params", [
|
||||||
|
({}, {'govuk_banner': True}),
|
||||||
|
({'govuk_banner': 'false'}, {'govuk_banner': False})
|
||||||
|
]
|
||||||
|
)
|
||||||
|
def test_renders(app_, mocker, query_args, params):
|
||||||
|
with app_.test_request_context(), app_.test_client() as client:
|
||||||
|
|
||||||
|
mock_html_email = mocker.patch(
|
||||||
|
'app.main.views.index.HTMLEmail',
|
||||||
|
return_value=lambda x: 'rendered'
|
||||||
|
)
|
||||||
|
|
||||||
|
response = client.get(url_for('main.email_template', **query_args))
|
||||||
|
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert response.get_data(as_text=True) == 'rendered'
|
||||||
|
mock_html_email.assert_called_once_with(**params)
|
||||||
Reference in New Issue
Block a user