generated from coulomb/repo-seed
32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
from email_connect.recipients import load_expected_recipients, normalize_email_address
|
|
|
|
|
|
FIXTURES = Path(__file__).parent / "fixtures"
|
|
|
|
|
|
class RecipientTests(unittest.TestCase):
|
|
def test_normalizes_email_addresses(self) -> None:
|
|
self.assertEqual(normalize_email_address(" USER@Example.COM "), "user@example.com")
|
|
self.assertIsNone(normalize_email_address("not-an-address"))
|
|
|
|
def test_loads_line_separated_recipients(self) -> None:
|
|
recipients = load_expected_recipients(FIXTURES / "expected_recipients.txt")
|
|
|
|
self.assertEqual(recipients.addresses, ("missing@example.com", "absent@example.com"))
|
|
self.assertEqual(len(recipients.invalid_entries), 1)
|
|
|
|
def test_loads_csv_recipients(self) -> None:
|
|
recipients = load_expected_recipients(FIXTURES / "expected_recipients.csv", csv_column="email")
|
|
|
|
self.assertEqual(recipients.addresses, ("optout@example.com", "csv-absent@example.com"))
|
|
self.assertEqual(len(recipients.invalid_entries), 1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|