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()