diff --git a/tests/notifications_utils/test_recipient_csv.py b/tests/notifications_utils/test_recipient_csv.py index c7e937b43..ba93ec1aa 100644 --- a/tests/notifications_utils/test_recipient_csv.py +++ b/tests/notifications_utils/test_recipient_csv.py @@ -9,7 +9,6 @@ import pytest from ordered_set import OrderedSet from notifications_utils import SMS_CHAR_COUNT_LIMIT -from notifications_utils.countries import Country from notifications_utils.formatters import strip_and_remove_obscure_whitespace from notifications_utils.recipients import ( Cell, @@ -38,19 +37,6 @@ def _index_rows(rows): [ ("email", ["email address"]), ("sms", ["phone number"]), - ( - "letter", - [ - "address line 1", - "address line 2", - "address line 3", - "address line 4", - "address line 5", - "address line 6", - "postcode", - "address line 7", - ], - ), ], ) def test_recipient_column_headers(template_type, expected): @@ -157,34 +143,6 @@ def test_recipient_column_headers(template_type, expected): ], ], ), - ( - """ - address_line_1 - Alice - Bob - """, - "letter", - [[("address_line_1", "Alice")], [("address_line_1", "Bob")]], - ), - ( - """ - address line 1,address line 2,address line 5,address line 6,postcode,name,thing - A. Name,,,,XM4 5HQ,example,example - """, - "letter", - [ - [ - ("addressline1", "A. Name"), - ("addressline2", None), - # optional address rows 3 and 4 not in file - ("addressline5", None), - ("addressline5", None), - ("postcode", "XM4 5HQ"), - ("name", "example"), - ("thing", "example"), - ] - ], - ), ( """ phone number, list, list, list @@ -552,14 +510,6 @@ def test_get_recipient_respects_order( ["email address", "name", "colour"], set(), ), - ( - """ - address_line_1, address_line_2, postcode, name - """, - "letter", - ["address_line_1", "address_line_2", "postcode", "name"], - set(), - ), ( """ email address,colour @@ -568,14 +518,6 @@ def test_get_recipient_respects_order( ["email address", "colour"], set(["name"]), ), - ( - """ - address_line_1, address_line_2, name - """, - "letter", - ["address_line_1", "address_line_2", "name"], - set(), - ), ( """ phone number,list,list,name,list @@ -608,40 +550,12 @@ def test_column_headers(file_contents, template_type, expected, expected_missing pytest.param("", "sms", marks=pytest.mark.xfail), pytest.param("name", "sms", marks=pytest.mark.xfail), pytest.param("email address", "sms", marks=pytest.mark.xfail), - pytest.param( - "address_line_1", - "letter", - marks=pytest.mark.xfail, - ), - pytest.param( - "address_line_1, address_line_2", - "letter", - marks=pytest.mark.xfail, - ), - pytest.param( - "address_line_6, postcode", - "letter", - marks=pytest.mark.xfail, - ), - pytest.param( - "address_line_1, postcode, address_line_7", - "letter", - marks=pytest.mark.xfail, - ), ("phone number", "sms"), ("phone number,name", "sms"), ("email address", "email"), ("email address,name", "email"), ("PHONENUMBER", "sms"), ("email_address", "email"), - ("address_line_1, address_line_2, postcode", "letter"), - ("address_line_1, address_line_2, address_line_7", "letter"), - ("address_line_1, address_line_2, address_line_3", "letter"), - ("address_line_4, address_line_5, address_line_6", "letter"), - ( - "address_line_1, address_line_2, address_line_3, address_line_4, address_line_5, address_line_6, postcode", - "letter", - ), ], ) def test_recipient_column(content, file_contents, template_type): @@ -689,48 +603,6 @@ def test_recipient_column(content, file_contents, template_type): set(), set(), ), - ( - # missing postcode - """ - address_line_1,address_line_2,address_line_3,address_line_4,address_line_5,postcode,date - name, building, street, town, county, SE1 7LS,today - name, building, street, town, county, , today - """, - "letter", - {1}, - set(), - ), - ( - # not enough address fields - """ - address_line_1, postcode, date - name, SE1 7LS, today - """, - "letter", - {0}, - set(), - ), - ( - # optional address fields not filled in - """ - address_line_1,address_line_2,address_line_3,address_line_4,address_line_5,postcode,date - name ,123 fake st. , , , ,SE1 7LS,today - name , , , , ,SE1 7LS,today - """, - "letter", - {1}, - set(), - ), - ( - # Can use any address columns - """ - address_line_3, address_line_4, address_line_7, date - name , 123 fake st., SE1 7LS, today - """, - "letter", - set(), - set(), - ), ], ) @pytest.mark.parametrize( @@ -1190,23 +1062,6 @@ def test_multiple_email_recipient_columns(): assert recipients.has_errors -def test_multiple_letter_recipient_columns(): - recipients = RecipientCSV( - """ - address line 1, Address Line 2, address line 1, address_line_2 - 1,2,3,4 - """, - template=_sample_template("letter"), - ) - assert recipients.rows[0].get("addressline1").data == ("3") - assert recipients.rows[0].get("addressline1").error is None - assert recipients.has_errors - assert recipients.duplicate_recipient_column_headers == OrderedSet( - ["address line 1", "Address Line 2", "address line 1", "address_line_2"] - ) - assert recipients.has_errors - - def test_displayed_rows_when_some_rows_have_errors(): recipients = RecipientCSV( """ @@ -1252,59 +1107,6 @@ def test_multi_line_placeholders_work(): assert recipients.rows[0].personalisation["data"] == "a\nb\n\nc" -@pytest.mark.parametrize( - ("extra_args", "expected_errors", "expected_bad_rows"), - [ - ({}, True, {0}), - ({"allow_international_letters": False}, True, {0}), - ({"allow_international_letters": True}, False, set()), - ], -) -def test_accepts_international_addresses_when_allowed( - extra_args, expected_errors, expected_bad_rows -): - recipients = RecipientCSV( - """ - address line 1, address line 2, address line 3 - First Lastname, 123 Example St, Fiji - First Lastname, 123 Example St, SW1A 1AA - """, - template=_sample_template("letter"), - **extra_args, - ) - assert recipients.has_errors is expected_errors - assert _index_rows(recipients.rows_with_bad_recipients) == expected_bad_rows - # Prove that the error isn’t because the given country is unknown - assert recipients[0].as_postal_address.country == Country("Fiji") - - -def test_address_validation_speed(): - # We should be able to validate 1000 lines of address data in about - # a second – if it starts to get slow, something is inefficient - number_of_lines = 1000 - uk_addresses_with_valid_postcodes = "\n".join( - ( - "{n} Example Street, London, {a}{b} {c}{d}{e}".format( - n=randrange(1000), - a=choice(["n", "e", "sw", "se", "w"]), - b=choice(range(1, 10)), - c=choice(range(1, 10)), - d=choice("ABDefgHJLNPqrstUWxyZ"), - e=choice("ABDefgHJLNPqrstUWxyZ"), - ) - for i in range(number_of_lines) - ) - ) - recipients = RecipientCSV( - "address line 1, address line 2, address line 3\n" - + (uk_addresses_with_valid_postcodes), - template=_sample_template("letter"), - allow_international_letters=False, - ) - for row in recipients: - assert not row.has_bad_postal_address - - def test_email_validation_speed(): email_addresses = "\n".join( (