mirror of
https://github.com/GSA/notifications-api.git
synced 2026-07-26 02:49:42 -04:00
Pull main
This commit is contained in:
@@ -257,7 +257,7 @@ def test_what_will_trigger_conditional_placeholder(value):
|
||||
"list: ",
|
||||
),
|
||||
(
|
||||
{"placeholder": [" ", " \t ", "\u180E"]},
|
||||
{"placeholder": [" ", " \t ", "\u180e"]},
|
||||
"list: ",
|
||||
"list: ",
|
||||
),
|
||||
|
||||
@@ -66,7 +66,7 @@ def test_HTML_template_has_URLs_replaced_with_links():
|
||||
|
||||
def test_escaping_govuk_in_email_templates():
|
||||
template_content = "GOV.UK"
|
||||
expected = "GOV.\u200BUK"
|
||||
expected = "GOV.\u200bUK"
|
||||
assert unlink_govuk_escaped(template_content) == expected
|
||||
template_json = {
|
||||
"content": template_content,
|
||||
@@ -81,23 +81,23 @@ def test_escaping_govuk_in_email_templates():
|
||||
("template_content", "expected"),
|
||||
[
|
||||
# Cases that we add the breaking space
|
||||
("GOV.UK", "GOV.\u200BUK"),
|
||||
("gov.uk", "gov.\u200Buk"),
|
||||
("GOV.UK", "GOV.\u200bUK"),
|
||||
("gov.uk", "gov.\u200buk"),
|
||||
(
|
||||
"content with space infront GOV.UK",
|
||||
"content with space infront GOV.\u200BUK",
|
||||
"content with space infront GOV.\u200bUK",
|
||||
),
|
||||
("content with tab infront\tGOV.UK", "content with tab infront\tGOV.\u200BUK"),
|
||||
("content with tab infront\tGOV.UK", "content with tab infront\tGOV.\u200bUK"),
|
||||
(
|
||||
"content with newline infront\nGOV.UK",
|
||||
"content with newline infront\nGOV.\u200BUK",
|
||||
"content with newline infront\nGOV.\u200bUK",
|
||||
),
|
||||
("*GOV.UK", "*GOV.\u200BUK"),
|
||||
("#GOV.UK", "#GOV.\u200BUK"),
|
||||
("^GOV.UK", "^GOV.\u200BUK"),
|
||||
(" #GOV.UK", " #GOV.\u200BUK"),
|
||||
("GOV.UK with CONTENT after", "GOV.\u200BUK with CONTENT after"),
|
||||
("#GOV.UK with CONTENT after", "#GOV.\u200BUK with CONTENT after"),
|
||||
("*GOV.UK", "*GOV.\u200bUK"),
|
||||
("#GOV.UK", "#GOV.\u200bUK"),
|
||||
("^GOV.UK", "^GOV.\u200bUK"),
|
||||
(" #GOV.UK", " #GOV.\u200bUK"),
|
||||
("GOV.UK with CONTENT after", "GOV.\u200bUK with CONTENT after"),
|
||||
("#GOV.UK with CONTENT after", "#GOV.\u200bUK with CONTENT after"),
|
||||
# Cases that we don't add the breaking space
|
||||
("https://gov.uk", "https://gov.uk"),
|
||||
("https://www.gov.uk", "https://www.gov.uk"),
|
||||
@@ -366,7 +366,7 @@ def test_unicode_dash_lookup():
|
||||
"""
|
||||
\t bar
|
||||
""",
|
||||
" \u180E\u200B \u200C bar \u200D \u2060\uFEFF ",
|
||||
" \u180e\u200b \u200c bar \u200d \u2060\ufeff ",
|
||||
],
|
||||
)
|
||||
def test_strip_all_whitespace(value):
|
||||
@@ -378,7 +378,7 @@ def test_strip_all_whitespace(value):
|
||||
[
|
||||
"notifications-email",
|
||||
" \tnotifications-email \x0c ",
|
||||
"\rn\u200Coti\u200Dfi\u200Bcati\u2060ons-\u180Eemai\uFEFFl\uFEFF",
|
||||
"\rn\u200coti\u200dfi\u200bcati\u2060ons-\u180eemai\ufeffl\ufeff",
|
||||
],
|
||||
)
|
||||
def test_strip_and_remove_obscure_whitespace(value):
|
||||
@@ -421,12 +421,12 @@ def test_strip_unsupported_characters():
|
||||
@pytest.mark.parametrize(
|
||||
"value",
|
||||
[
|
||||
"\u200C Your tax is\ndue\n\n",
|
||||
"\u200c Your tax is\ndue\n\n",
|
||||
" Your tax is due ",
|
||||
# Non breaking spaces replaced by single spaces
|
||||
"\u00A0Your\u00A0tax\u00A0 is\u00A0\u00A0due\u00A0",
|
||||
"\u00a0Your\u00a0tax\u00a0 is\u00a0\u00a0due\u00a0",
|
||||
# zero width spaces are removed
|
||||
"\u180EYour \u200Btax\u200C is \u200D\u2060due \uFEFF",
|
||||
"\u180eYour \u200btax\u200c is \u200d\u2060due \ufeff",
|
||||
# tabs are replaced by single spaces
|
||||
"\tYour tax\tis due ",
|
||||
],
|
||||
|
||||
@@ -559,7 +559,7 @@ def test_normalise_postcode(postcode, normalised_postcode):
|
||||
("N5 1AA", True),
|
||||
("SO14 6WB", True),
|
||||
("so14 6wb", True),
|
||||
("so14\u00A06wb", True),
|
||||
("so14\u00a06wb", True),
|
||||
# invalida / incomplete postcodes
|
||||
("N5", False),
|
||||
("SO144 6WB", False),
|
||||
@@ -600,7 +600,7 @@ def test_if_postcode_is_a_real_uk_postcode_normalises_before_checking_postcode(m
|
||||
("N5 3EF", "N5 3EF"),
|
||||
("N53EF ", "N5 3EF"),
|
||||
("n53Ef", "N5 3EF"),
|
||||
("n5 \u00A0 \t 3Ef", "N5 3EF"),
|
||||
("n5 \u00a0 \t 3Ef", "N5 3EF"),
|
||||
("SO146WB", "SO14 6WB"),
|
||||
("BFPO2", "BFPO 2"),
|
||||
("BFPO232", "BFPO 232"),
|
||||
|
||||
@@ -877,14 +877,14 @@ def test_ignores_spaces_and_case_in_placeholders(key, expected):
|
||||
("\n", None), # newline
|
||||
("\r", None), # carriage return
|
||||
("\t", None), # tab
|
||||
("\u180E", "MONGOLIAN VOWEL SEPARATOR"),
|
||||
("\u200B", "ZERO WIDTH SPACE"),
|
||||
("\u200C", "ZERO WIDTH NON-JOINER"),
|
||||
("\u200D", "ZERO WIDTH JOINER"),
|
||||
("\u180e", "MONGOLIAN VOWEL SEPARATOR"),
|
||||
("\u200b", "ZERO WIDTH SPACE"),
|
||||
("\u200c", "ZERO WIDTH NON-JOINER"),
|
||||
("\u200d", "ZERO WIDTH JOINER"),
|
||||
("\u2060", "WORD JOINER"),
|
||||
("\uFEFF", "ZERO WIDTH NO-BREAK SPACE"),
|
||||
("\ufeff", "ZERO WIDTH NO-BREAK SPACE"),
|
||||
# all the things
|
||||
(" \n\r\t\u000A\u000D\u180E\u200B\u200C\u200D\u2060\uFEFF", None),
|
||||
(" \n\r\t\u000a\u000d\u180e\u200b\u200c\u200d\u2060\ufeff", None),
|
||||
],
|
||||
)
|
||||
def test_ignores_leading_whitespace_in_file(character, name):
|
||||
|
||||
@@ -344,7 +344,7 @@ def test_validate_email_address_accepts_valid(email_address):
|
||||
" email@domain.com ",
|
||||
"\temail@domain.com",
|
||||
"\temail@domain.com\n",
|
||||
"\u200Bemail@domain.com\u200B",
|
||||
"\u200bemail@domain.com\u200b",
|
||||
],
|
||||
)
|
||||
def test_validate_email_address_strips_whitespace(email):
|
||||
|
||||
@@ -17,7 +17,7 @@ params, ids = zip(
|
||||
("…", "..."),
|
||||
"compatibility transform unicode char (HORIZONTAL ELLIPSIS (U+2026)",
|
||||
),
|
||||
(("\u200B", ""), "compatibility transform unicode char (ZERO WIDTH SPACE (U+200B)"),
|
||||
(("\u200b", ""), "compatibility transform unicode char (ZERO WIDTH SPACE (U+200B)"),
|
||||
(
|
||||
("‘", "'"),
|
||||
"compatibility transform unicode char (LEFT SINGLE QUOTATION MARK (U+2018)",
|
||||
|
||||
Reference in New Issue
Block a user