diff --git a/app/__init__.py b/app/__init__.py
index 05e825a6b..035bb2a9b 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -30,7 +30,7 @@ from notifications_python_client.errors import HTTPError
from notifications_utils import logging, request_id, formatters
from notifications_utils.clients.statsd.statsd_client import StatsdClient
from notifications_utils.recipients import validate_phone_number, InvalidPhoneError
-from notifications_utils.field import escape_html
+from notifications_utils.formatters import formatted_list
from pygments import highlight
from pygments.formatters.html import HtmlFormatter
from pygments.lexers.javascript import JavascriptLexer
@@ -359,33 +359,6 @@ def format_notification_status_as_url(status):
}.get(status)
-def formatted_list(
- items,
- conjunction='and',
- before_each='‘',
- after_each='’',
- separator=', ',
- prefix='',
- prefix_plural=''
-):
- if prefix:
- prefix += ' '
- if prefix_plural:
- prefix_plural += ' '
-
- items = list(map(escape_html, items))
- if len(items) == 1:
- return Markup('{prefix}{before_each}{items[0]}{after_each}'.format(**locals()))
- elif items:
- formatted_items = ['{}{}{}'.format(before_each, item, after_each) for item in items]
-
- first_items = separator.join(formatted_items[:-1])
- last_item = formatted_items[-1]
- return Markup((
- '{prefix_plural}{first_items} {conjunction} {last_item}'
- ).format(**locals()))
-
-
def nl2br(value):
return formatters.nl2br(value) if value else ''
diff --git a/app/main/views/templates.py b/app/main/views/templates.py
index 5ea2e41c9..5b0e4e7e3 100644
--- a/app/main/views/templates.py
+++ b/app/main/views/templates.py
@@ -15,7 +15,7 @@ from flask_login import login_required, current_user
from flask_weasyprint import HTML, render_pdf
from dateutil.parser import parse
-from notifications_utils.field import escape_html
+from notifications_utils.formatters import escape_html
from notifications_utils.template import LetterPreviewTemplate
from notifications_utils.recipients import first_column_headings
from notifications_python_client.errors import HTTPError
diff --git a/tests/app/test_jinja_filters.py b/tests/app/test_jinja_filters.py
deleted file mode 100644
index 39e337761..000000000
--- a/tests/app/test_jinja_filters.py
+++ /dev/null
@@ -1,23 +0,0 @@
-import pytest
-
-from flask import Markup
-from app import formatted_list
-
-
-@pytest.mark.parametrize('items, kwargs, expected_output', [
- ([1], {}, '‘1’'),
- ([1, 2], {}, '‘1’ and ‘2’'),
- ([1, 2, 3], {}, '‘1’, ‘2’ and ‘3’'),
- ([1, 2, 3], {'prefix': 'foo', 'prefix_plural': 'bar'}, 'bar ‘1’, ‘2’ and ‘3’'),
- ([1], {'prefix': 'foo', 'prefix_plural': 'bar'}, 'foo ‘1’'),
- ([1, 2, 3], {'before_each': 'a', 'after_each': 'b'}, 'a1b, a2b and a3b'),
- ([1, 2, 3], {'conjunction': 'foo'}, '‘1’, ‘2’ foo ‘3’'),
- (['&'], {'before_each': '', 'after_each': ''}, '&'),
- ([1, 2, 3], {'before_each': '', 'after_each': ''}, '1, 2 and 3'),
-])
-def test_formatted_list(items, kwargs, expected_output):
- assert formatted_list(items, **kwargs) == expected_output
-
-
-def test_formatted_list_returns_markup():
- assert isinstance(formatted_list([0]), Markup)