mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-24 00:07:02 -04:00
Incorporate breaking utils changes
Brings in: - [ ] https://github.com/alphagov/notifications-utils/pull/94
This commit is contained in:
@@ -3,8 +3,7 @@ from app.main import main
|
|||||||
from app import convert_to_boolean
|
from app import convert_to_boolean
|
||||||
from flask_login import (login_required, current_user)
|
from flask_login import (login_required, current_user)
|
||||||
|
|
||||||
|
from notifications_utils.template import HTMLEmailTemplate
|
||||||
from notifications_utils.renderers import HTMLEmail
|
|
||||||
|
|
||||||
|
|
||||||
@main.route('/')
|
@main.route('/')
|
||||||
@@ -57,9 +56,7 @@ def terms():
|
|||||||
|
|
||||||
@main.route('/_email')
|
@main.route('/_email')
|
||||||
def email_template():
|
def email_template():
|
||||||
return HTMLEmail(
|
return str(HTMLEmailTemplate({'subject': 'foo', 'content': (
|
||||||
govuk_banner=convert_to_boolean(request.args.get('govuk_banner', True))
|
|
||||||
)(
|
|
||||||
'Lorem Ipsum is simply dummy text of the printing and typesetting '
|
'Lorem Ipsum is simply dummy text of the printing and typesetting '
|
||||||
'industry.\n\nLorem Ipsum has been the industry’s standard dummy '
|
'industry.\n\nLorem Ipsum has been the industry’s standard dummy '
|
||||||
'text ever since the 1500s, when an unknown printer took a galley '
|
'text ever since the 1500s, when an unknown printer took a galley '
|
||||||
@@ -96,7 +93,8 @@ def email_template():
|
|||||||
'This is an example of an email sent using GOV.UK Notify.'
|
'This is an example of an email sent using GOV.UK Notify.'
|
||||||
'\n\n'
|
'\n\n'
|
||||||
'https://www.notifications.service.gov.uk'
|
'https://www.notifications.service.gov.uk'
|
||||||
)
|
)}, govuk_banner=convert_to_boolean(request.args.get('govuk_banner', True))
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
@main.route('/documentation')
|
@main.route('/documentation')
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ from flask import (
|
|||||||
)
|
)
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
from werkzeug.datastructures import MultiDict
|
from werkzeug.datastructures import MultiDict
|
||||||
from notifications_utils.template import Template
|
|
||||||
|
|
||||||
from app import (
|
from app import (
|
||||||
job_api_client,
|
job_api_client,
|
||||||
@@ -31,7 +30,8 @@ from app.utils import (
|
|||||||
generate_previous_dict,
|
generate_previous_dict,
|
||||||
user_has_permissions,
|
user_has_permissions,
|
||||||
generate_notifications_csv,
|
generate_notifications_csv,
|
||||||
get_help_argument
|
get_help_argument,
|
||||||
|
get_template,
|
||||||
)
|
)
|
||||||
from app.statistics_utils import add_rate_to_job
|
from app.statistics_utils import add_rate_to_job
|
||||||
|
|
||||||
@@ -108,14 +108,13 @@ def view_job(service_id, job_id):
|
|||||||
'views/jobs/job.html',
|
'views/jobs/job.html',
|
||||||
finished=(total_notifications == processed_notifications),
|
finished=(total_notifications == processed_notifications),
|
||||||
uploaded_file_name=job['original_file_name'],
|
uploaded_file_name=job['original_file_name'],
|
||||||
template=Template(
|
template=get_template(
|
||||||
service_api_client.get_service_template(
|
service_api_client.get_service_template(
|
||||||
service_id=service_id,
|
service_id=service_id,
|
||||||
template_id=job['template'],
|
template_id=job['template'],
|
||||||
version=job['template_version']
|
version=job['template_version']
|
||||||
)['data'],
|
)['data'],
|
||||||
prefix=current_service['name'],
|
current_service,
|
||||||
sms_sender=current_service['sms_sender']
|
|
||||||
),
|
),
|
||||||
status=request.args.get('status', ''),
|
status=request.args.get('status', ''),
|
||||||
updates_url=url_for(
|
updates_url=url_for(
|
||||||
|
|||||||
@@ -18,9 +18,7 @@ from flask import (
|
|||||||
|
|
||||||
from flask_login import login_required, current_user
|
from flask_login import login_required, current_user
|
||||||
from notifications_utils.columns import Columns
|
from notifications_utils.columns import Columns
|
||||||
from notifications_utils.template import Template
|
|
||||||
from notifications_utils.recipients import RecipientCSV, first_column_headings, validate_and_format_phone_number
|
from notifications_utils.recipients import RecipientCSV, first_column_headings, validate_and_format_phone_number
|
||||||
from notifications_utils.renderers import EmailPreview, SMSPreview, LetterPDFLink
|
|
||||||
|
|
||||||
from app.main import main
|
from app.main import main
|
||||||
from app.main.forms import CsvUploadForm, ChooseTimeForm, get_next_days_until, get_furthest_possible_scheduled_time
|
from app.main.forms import CsvUploadForm, ChooseTimeForm, get_next_days_until, get_furthest_possible_scheduled_time
|
||||||
@@ -29,7 +27,7 @@ from app.main.uploader import (
|
|||||||
s3download
|
s3download
|
||||||
)
|
)
|
||||||
from app import job_api_client, service_api_client, current_service, user_api_client
|
from app import job_api_client, service_api_client, current_service, user_api_client
|
||||||
from app.utils import user_has_permissions, get_errors_for_csv, Spreadsheet, get_help_argument, get_renderer
|
from app.utils import user_has_permissions, get_errors_for_csv, Spreadsheet, get_help_argument, get_template
|
||||||
|
|
||||||
|
|
||||||
def get_page_headings(template_type):
|
def get_page_headings(template_type):
|
||||||
@@ -89,10 +87,8 @@ def choose_template(service_id, template_type):
|
|||||||
return render_template(
|
return render_template(
|
||||||
'views/templates/choose.html',
|
'views/templates/choose.html',
|
||||||
templates=[
|
templates=[
|
||||||
Template(
|
get_template(template, current_service)
|
||||||
template,
|
for template in service_api_client.get_service_templates(service_id)['data']
|
||||||
renderer=get_renderer(template_type, current_service, show_recipient=False)
|
|
||||||
) for template in service_api_client.get_service_templates(service_id)['data']
|
|
||||||
if template['template_type'] == template_type
|
if template['template_type'] == template_type
|
||||||
],
|
],
|
||||||
template_type=template_type,
|
template_type=template_type,
|
||||||
@@ -104,10 +100,12 @@ def choose_template(service_id, template_type):
|
|||||||
@login_required
|
@login_required
|
||||||
@user_has_permissions('send_texts', 'send_emails', 'send_letters')
|
@user_has_permissions('send_texts', 'send_emails', 'send_letters')
|
||||||
def send_messages(service_id, template_id):
|
def send_messages(service_id, template_id):
|
||||||
template = Template(
|
|
||||||
service_api_client.get_service_template(service_id, template_id)['data']
|
template = get_template(
|
||||||
|
service_api_client.get_service_template(service_id, template_id)['data'],
|
||||||
|
current_service,
|
||||||
|
show_recipient=True
|
||||||
)
|
)
|
||||||
template.renderer = get_renderer(template.template_type, current_service, show_recipient=True)
|
|
||||||
|
|
||||||
form = CsvUploadForm()
|
form = CsvUploadForm()
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
@@ -145,7 +143,9 @@ def send_messages(service_id, template_id):
|
|||||||
@login_required
|
@login_required
|
||||||
@user_has_permissions('send_texts', 'send_emails', 'send_letters', 'manage_templates', any_=True)
|
@user_has_permissions('send_texts', 'send_emails', 'send_letters', 'manage_templates', any_=True)
|
||||||
def get_example_csv(service_id, template_id):
|
def get_example_csv(service_id, template_id):
|
||||||
template = Template(service_api_client.get_service_template(service_id, template_id)['data'])
|
template = get_template(
|
||||||
|
service_api_client.get_service_template(service_id, template_id)['data'], current_service
|
||||||
|
)
|
||||||
return Spreadsheet.from_rows([
|
return Spreadsheet.from_rows([
|
||||||
first_column_headings[template.template_type] + list(template.placeholders),
|
first_column_headings[template.template_type] + list(template.placeholders),
|
||||||
get_example_csv_rows(template)
|
get_example_csv_rows(template)
|
||||||
@@ -162,14 +162,12 @@ def send_test(service_id, template_id):
|
|||||||
|
|
||||||
file_name = current_app.config['TEST_MESSAGE_FILENAME']
|
file_name = current_app.config['TEST_MESSAGE_FILENAME']
|
||||||
|
|
||||||
template = Template(
|
template = get_template(
|
||||||
service_api_client.get_service_template(service_id, template_id)['data'],
|
service_api_client.get_service_template(service_id, template_id)['data'],
|
||||||
prefix=current_service['name'],
|
current_service,
|
||||||
sms_sender=current_service['sms_sender']
|
show_recipient=True
|
||||||
)
|
)
|
||||||
|
|
||||||
template.renderer = get_renderer(template.template_type, current_service, show_recipient=True)
|
|
||||||
|
|
||||||
if len(template.placeholders) == 0 or request.method == 'POST':
|
if len(template.placeholders) == 0 or request.method == 'POST':
|
||||||
upload_id = s3upload(
|
upload_id = s3upload(
|
||||||
service_id,
|
service_id,
|
||||||
@@ -209,10 +207,8 @@ def send_test(service_id, template_id):
|
|||||||
def send_from_api(service_id, template_id):
|
def send_from_api(service_id, template_id):
|
||||||
return render_template(
|
return render_template(
|
||||||
'views/send-from-api.html',
|
'views/send-from-api.html',
|
||||||
template=Template(
|
template=get_template(
|
||||||
service_api_client.get_service_template(service_id, template_id)['data'],
|
service_api_client.get_service_template(service_id, template_id)['data'], current_service
|
||||||
prefix=current_service['name'],
|
|
||||||
sms_sender=current_service['sms_sender']
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -234,15 +230,15 @@ def check_messages(service_id, template_type, upload_id):
|
|||||||
if not contents:
|
if not contents:
|
||||||
flash('There was a problem reading your upload file')
|
flash('There was a problem reading your upload file')
|
||||||
|
|
||||||
template = Template(
|
template = get_template(
|
||||||
service_api_client.get_service_template(
|
service_api_client.get_service_template(
|
||||||
service_id,
|
service_id,
|
||||||
session['upload_data'].get('template_id')
|
session['upload_data'].get('template_id')
|
||||||
)['data']
|
)['data'],
|
||||||
|
current_service,
|
||||||
|
show_recipient=True
|
||||||
)
|
)
|
||||||
|
|
||||||
template.renderer = get_renderer(template_type, current_service, show_recipient=True)
|
|
||||||
|
|
||||||
recipients = RecipientCSV(
|
recipients = RecipientCSV(
|
||||||
contents,
|
contents,
|
||||||
template_type=template.template_type,
|
template_type=template.template_type,
|
||||||
|
|||||||
@@ -8,13 +8,12 @@ from flask_weasyprint import HTML, render_pdf
|
|||||||
from dateutil.parser import parse
|
from dateutil.parser import parse
|
||||||
from wand.image import Image
|
from wand.image import Image
|
||||||
|
|
||||||
from notifications_utils.template import Template
|
from notifications_utils.template import LetterPreviewTemplate
|
||||||
from notifications_utils.recipients import first_column_headings
|
from notifications_utils.recipients import first_column_headings
|
||||||
from notifications_utils.renderers import LetterPreview
|
|
||||||
from notifications_python_client.errors import HTTPError
|
from notifications_python_client.errors import HTTPError
|
||||||
|
|
||||||
from app.main import main
|
from app.main import main
|
||||||
from app.utils import user_has_permissions, get_renderer
|
from app.utils import user_has_permissions, get_template
|
||||||
from app.main.forms import SMSTemplateForm, EmailTemplateForm, LetterTemplateForm
|
from app.main.forms import SMSTemplateForm, EmailTemplateForm, LetterTemplateForm
|
||||||
from app.main.views.send import get_example_csv_rows
|
from app.main.views.send import get_example_csv_rows
|
||||||
from app import service_api_client, current_service, template_statistics_client
|
from app import service_api_client, current_service, template_statistics_client
|
||||||
@@ -43,15 +42,13 @@ page_headings = {
|
|||||||
admin_override=True, any_=True
|
admin_override=True, any_=True
|
||||||
)
|
)
|
||||||
def view_template(service_id, template_id):
|
def view_template(service_id, template_id):
|
||||||
template = Template(
|
|
||||||
service_api_client.get_service_template(service_id, template_id)['data']
|
|
||||||
)
|
|
||||||
template.renderer = get_renderer(
|
|
||||||
template.template_type, current_service, show_recipient=False, expand_emails=True
|
|
||||||
)
|
|
||||||
return render_template(
|
return render_template(
|
||||||
'views/templates/template.html',
|
'views/templates/template.html',
|
||||||
template=template
|
template=get_template(
|
||||||
|
service_api_client.get_service_template(service_id, template_id)['data'],
|
||||||
|
current_service,
|
||||||
|
expand_emails=True
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -59,11 +56,11 @@ def view_template(service_id, template_id):
|
|||||||
@login_required
|
@login_required
|
||||||
@user_has_permissions('view_activity', admin_override=True)
|
@user_has_permissions('view_activity', admin_override=True)
|
||||||
def view_letter_template_as_pdf(service_id, template_id):
|
def view_letter_template_as_pdf(service_id, template_id):
|
||||||
template = Template(
|
return render_pdf(HTML(string=str(
|
||||||
service_api_client.get_service_template(service_id, template_id)['data'],
|
LetterPreviewTemplate(
|
||||||
renderer=LetterPreview()
|
service_api_client.get_service_template(service_id, template_id)['data'],
|
||||||
)
|
)
|
||||||
return render_pdf(HTML(string=template.rendered))
|
)))
|
||||||
|
|
||||||
|
|
||||||
@main.route("/services/<service_id>/templates/<template_id>.png")
|
@main.route("/services/<service_id>/templates/<template_id>.png")
|
||||||
@@ -92,15 +89,13 @@ def view_letter_template_as_image(service_id, template_id):
|
|||||||
any_=True
|
any_=True
|
||||||
)
|
)
|
||||||
def view_template_version(service_id, template_id, version):
|
def view_template_version(service_id, template_id, version):
|
||||||
template = Template(
|
|
||||||
service_api_client.get_service_template(service_id, template_id, version)['data']
|
|
||||||
)
|
|
||||||
template.renderer = get_renderer(
|
|
||||||
template.template_type, current_service, show_recipient=False, expand_emails=True
|
|
||||||
)
|
|
||||||
return render_template(
|
return render_template(
|
||||||
'views/templates/template_history.html',
|
'views/templates/template_history.html',
|
||||||
template=template
|
template=get_template(
|
||||||
|
service_api_client.get_service_template(service_id, template_id, version)['data'],
|
||||||
|
current_service,
|
||||||
|
expand_emails=True
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -154,14 +149,14 @@ def edit_service_template(service_id, template_id):
|
|||||||
|
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
subject = form.subject.data if hasattr(form, 'subject') else None
|
subject = form.subject.data if hasattr(form, 'subject') else None
|
||||||
new_template = Template({
|
new_template = get_template({
|
||||||
'name': form.name.data,
|
'name': form.name.data,
|
||||||
'content': form.template_content.data,
|
'content': form.template_content.data,
|
||||||
'subject': subject,
|
'subject': subject,
|
||||||
'template_type': template['template_type'],
|
'template_type': template['template_type'],
|
||||||
'id': template['id']
|
'id': template['id']
|
||||||
})
|
}, current_service)
|
||||||
template_change = Template(template).compare_to(new_template)
|
template_change = get_template(template, current_service).compare_to(new_template)
|
||||||
if template_change.has_different_placeholders and not request.form.get('confirm'):
|
if template_change.has_different_placeholders and not request.form.get('confirm'):
|
||||||
return render_template(
|
return render_template(
|
||||||
'views/templates/breaking-change.html',
|
'views/templates/breaking-change.html',
|
||||||
@@ -260,18 +255,12 @@ def delete_service_template(service_id, template_id):
|
|||||||
any_=True
|
any_=True
|
||||||
)
|
)
|
||||||
def view_template_versions(service_id, template_id):
|
def view_template_versions(service_id, template_id):
|
||||||
|
|
||||||
versions = []
|
|
||||||
for template in service_api_client.get_service_template_versions(service_id, template_id)['data']:
|
|
||||||
template = Template(template)
|
|
||||||
template.renderer = get_renderer(
|
|
||||||
template.template_type, current_service, show_recipient=False, expand_emails=True
|
|
||||||
)
|
|
||||||
versions.append(template)
|
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
'views/templates/choose_history.html',
|
'views/templates/choose_history.html',
|
||||||
versions=versions
|
versions=[
|
||||||
|
get_template(template, current_service, expand_emails=True)
|
||||||
|
for template in service_api_client.get_service_template_versions(service_id, template_id)['data']
|
||||||
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -127,7 +127,7 @@
|
|||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{{ template.rendered }}
|
{{ template|string }}
|
||||||
|
|
||||||
{% if errors %}
|
{% if errors %}
|
||||||
{% if request.args.from_test %}
|
{% if request.args.from_test %}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
{{ uploaded_file_name }}
|
{{ uploaded_file_name }}
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
{{ template.rendered }}
|
{{ template|string }}
|
||||||
|
|
||||||
{{ ajax_block(partials, updates_url, 'status', finished=finished) }}
|
{{ ajax_block(partials, updates_url, 'status', finished=finished) }}
|
||||||
{{ ajax_block(partials, updates_url, 'counts', finished=finished) }}
|
{{ ajax_block(partials, updates_url, 'counts', finished=finished) }}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
API info
|
API info
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
{{ template.rendered }}
|
{{ template|string }}
|
||||||
|
|
||||||
<div class="bottom-gutter">
|
<div class="bottom-gutter">
|
||||||
{{ api_key(template.id, name="Template ID", thing='template ID') }}
|
{{ api_key(template.id, name="Template ID", thing='template ID') }}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
<h1 class="heading-large">Send yourself a test</h1>
|
<h1 class="heading-large">Send yourself a test</h1>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{{ template.rendered }}
|
{{ template|string }}
|
||||||
|
|
||||||
<form method="post">
|
<form method="post">
|
||||||
{% call(item, row_number) list_table(
|
{% call(item, row_number) list_table(
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<h1 class="heading-large">Upload recipients</h1>
|
<h1 class="heading-large">Upload recipients</h1>
|
||||||
|
|
||||||
{{ template.rendered }}
|
{{ template|string }}
|
||||||
|
|
||||||
<div class="page-footer bottom-gutter">
|
<div class="page-footer bottom-gutter">
|
||||||
{{file_upload(
|
{{file_upload(
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="column-two-thirds">
|
<div class="column-two-thirds">
|
||||||
{{ template.rendered }}
|
{{ template|string }}
|
||||||
</div>
|
</div>
|
||||||
<div class="column-one-third">
|
<div class="column-one-third">
|
||||||
{% if template._template.archived %}
|
{% if template._template.archived %}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="column-two-thirds">
|
<div class="column-two-thirds">
|
||||||
{{ template.rendered }}
|
{{ template|string }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="column-one-third">
|
<div class="column-one-third">
|
||||||
|
|||||||
28
app/utils.py
28
app/utils.py
@@ -8,7 +8,11 @@ import unicodedata
|
|||||||
from flask import (abort, current_app, session, request, redirect, url_for)
|
from flask import (abort, current_app, session, request, redirect, url_for)
|
||||||
from flask_login import current_user
|
from flask_login import current_user
|
||||||
|
|
||||||
from notifications_utils.renderers import SMSPreview, EmailPreview, LetterPDFLink
|
from notifications_utils.template import (
|
||||||
|
SMSPreviewTemplate,
|
||||||
|
EmailPreviewTemplate,
|
||||||
|
LetterPDFLinkTemplate,
|
||||||
|
)
|
||||||
|
|
||||||
import pyexcel
|
import pyexcel
|
||||||
import pyexcel.ext.io
|
import pyexcel.ext.io
|
||||||
@@ -220,18 +224,24 @@ def is_gov_user(email_address):
|
|||||||
return bool(re.search(email_regex, email_address.lower()))
|
return bool(re.search(email_regex, email_address.lower()))
|
||||||
|
|
||||||
|
|
||||||
def get_renderer(template_type, service, show_recipient, expand_emails=False):
|
def get_template(template, service, show_recipient=False, expand_emails=False):
|
||||||
return {
|
if 'email' == template['template_type']:
|
||||||
'email': EmailPreview(
|
return EmailPreviewTemplate(
|
||||||
|
template,
|
||||||
from_name=service['name'],
|
from_name=service['name'],
|
||||||
from_address='{}@notifications.service.gov.uk'.format(service['email_from']),
|
from_address='{}@notifications.service.gov.uk'.format(service['email_from']),
|
||||||
expanded=expand_emails,
|
expanded=expand_emails,
|
||||||
show_recipient=show_recipient
|
show_recipient=show_recipient
|
||||||
),
|
)
|
||||||
'sms': SMSPreview(
|
if 'sms' == template['template_type']:
|
||||||
|
return SMSPreviewTemplate(
|
||||||
|
template,
|
||||||
prefix=service['name'],
|
prefix=service['name'],
|
||||||
sender=service['sms_sender'],
|
sender=service['sms_sender'],
|
||||||
show_recipient=show_recipient
|
show_recipient=show_recipient
|
||||||
),
|
)
|
||||||
'letter': LetterPDFLink(service['id']),
|
if 'letter' == template['template_type']:
|
||||||
}[template_type]
|
return LetterPDFLinkTemplate(
|
||||||
|
template,
|
||||||
|
service_id=service['id'],
|
||||||
|
)
|
||||||
|
|||||||
@@ -22,4 +22,4 @@ wand==0.4.4
|
|||||||
|
|
||||||
git+https://github.com/alphagov/notifications-python-client.git@3.0.1#egg=notifications-python-client==3.0.1
|
git+https://github.com/alphagov/notifications-python-client.git@3.0.1#egg=notifications-python-client==3.0.1
|
||||||
|
|
||||||
git+https://github.com/alphagov/notifications-utils.git@11.1.0#egg=notifications-utils==11.1.0
|
git+https://github.com/alphagov/notifications-utils.git@12.1.0#egg=notifications-utils==12.1.0
|
||||||
|
|||||||
@@ -3,21 +3,19 @@ from flask import url_for
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"query_args, params", [
|
"query_args, result", [
|
||||||
({}, {'govuk_banner': True}),
|
({}, True),
|
||||||
({'govuk_banner': 'false'}, {'govuk_banner': False})
|
({'govuk_banner': 'false'}, 'false')
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
def test_renders(app_, mocker, query_args, params):
|
def test_renders(app_, mocker, query_args, result):
|
||||||
with app_.test_request_context(), app_.test_client() as client:
|
with app_.test_request_context(), app_.test_client() as client:
|
||||||
|
|
||||||
mock_html_email = mocker.patch(
|
mock_convert_to_boolean = mocker.patch('app.main.views.index.convert_to_boolean')
|
||||||
'app.main.views.index.HTMLEmail',
|
mocker.patch('app.main.views.index.HTMLEmailTemplate.__str__', return_value='rendered')
|
||||||
return_value=lambda x: 'rendered'
|
|
||||||
)
|
|
||||||
|
|
||||||
response = client.get(url_for('main.email_template', **query_args))
|
response = client.get(url_for('main.email_template', **query_args))
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert response.get_data(as_text=True) == 'rendered'
|
assert response.get_data(as_text=True) == 'rendered'
|
||||||
mock_html_email.assert_called_once_with(**params)
|
mock_convert_to_boolean.assert_called_once_with(result)
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ def test_should_show_scheduled_job(
|
|||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||||
assert page.find('main').find_all('p')[2].text.strip() == 'Sending will start today at midnight'
|
assert page.find('main').find_all('p')[1].text.strip() == 'Sending will start today at midnight'
|
||||||
assert page.find('input', {'type': 'submit', 'value': 'Cancel sending'})
|
assert page.find('input', {'type': 'submit', 'value': 'Cancel sending'})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ def test_should_show_page_for_one_template(
|
|||||||
('.view_letter_template_as_image', 'image/png'),
|
('.view_letter_template_as_image', 'image/png'),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@patch("app.main.views.templates.LetterPreview.__call__")
|
@patch("app.main.views.templates.LetterPreviewTemplate")
|
||||||
def test_should_show_preview_letter_templates(
|
def test_should_show_preview_letter_templates(
|
||||||
mock_letter_preview,
|
mock_letter_preview,
|
||||||
view,
|
view,
|
||||||
@@ -56,7 +56,7 @@ def test_should_show_preview_letter_templates(
|
|||||||
api_user_active,
|
api_user_active,
|
||||||
mock_login,
|
mock_login,
|
||||||
mock_get_service,
|
mock_get_service,
|
||||||
mock_get_service_template,
|
mock_get_service_email_template,
|
||||||
mock_get_user,
|
mock_get_user,
|
||||||
mock_get_user_by_email,
|
mock_get_user_by_email,
|
||||||
mock_has_permissions,
|
mock_has_permissions,
|
||||||
@@ -69,7 +69,7 @@ def test_should_show_preview_letter_templates(
|
|||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert response.content_type == expected_content_type
|
assert response.content_type == expected_content_type
|
||||||
mock_get_service_template.assert_called_with(service_id, template_id)
|
mock_get_service_email_template.assert_called_with(service_id, template_id)
|
||||||
assert mock_letter_preview.call_args[0][0]['content'] == "Your vehicle tax is about to expire"
|
assert mock_letter_preview.call_args[0][0]['content'] == "Your vehicle tax is about to expire"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user