mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-11 05:43:44 -05:00
This commit rearranges the CSV errors (again) to make them geared towards teaching you how to match placeholders to the column headers. So the order of errors now is: 1. No phone number/email column 2. Column headers don’t match placeholders 3. Missing or bad data 4. Trial mode 5. Daily limit reached This depends on: - [x] https://github.com/alphagov/notifications-utils/pull/39 for 1.
72 lines
1.4 KiB
Python
72 lines
1.4 KiB
Python
from collections import namedtuple
|
|
|
|
import pytest
|
|
|
|
from app.utils import get_errors_for_csv
|
|
|
|
|
|
MockRecipients = namedtuple(
|
|
'RecipientCSV',
|
|
[
|
|
'rows_with_bad_recipients',
|
|
'rows_with_missing_data'
|
|
]
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"rows_with_bad_recipients,rows_with_missing_data,template_type,expected_errors",
|
|
[
|
|
(
|
|
[], [],
|
|
'sms',
|
|
[]
|
|
),
|
|
(
|
|
{2}, [],
|
|
'sms',
|
|
['fix 1 phone number']
|
|
),
|
|
(
|
|
{2, 4, 6}, [],
|
|
'sms',
|
|
['fix 3 phone numbers']
|
|
),
|
|
(
|
|
{1}, [],
|
|
'email',
|
|
['fix 1 email address']
|
|
),
|
|
(
|
|
{2, 4, 6}, [],
|
|
'email',
|
|
['fix 3 email addresses']
|
|
),
|
|
(
|
|
{2}, {3},
|
|
'sms',
|
|
[
|
|
'fix 1 phone number',
|
|
'enter missing data in 1 row'
|
|
]
|
|
),
|
|
(
|
|
{2, 4, 6, 8}, {3, 6, 9, 12},
|
|
'sms',
|
|
[
|
|
'fix 4 phone numbers',
|
|
'enter missing data in 4 rows'
|
|
]
|
|
)
|
|
]
|
|
)
|
|
def test_get_errors_for_csv(
|
|
rows_with_bad_recipients, rows_with_missing_data,
|
|
template_type,
|
|
expected_errors
|
|
):
|
|
assert get_errors_for_csv(
|
|
MockRecipients(rows_with_bad_recipients, rows_with_missing_data),
|
|
template_type
|
|
) == expected_errors
|