Files
notifications-admin/tests/app/main/test_errors_for_csv.py
Chris Hill-Scott 2ff6cf049f Change order of errors for bad CSV files
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.
2016-06-03 16:26:58 +01:00

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