class EmailSenderSendEmailToUsersTest(TestCase): def setUp(self): self.sender = EmailSender() def test_default_usage(self): users = G(User, n=2) total = self.sender.send_email_to_users(users, [], 'x', 'y', 'z') self.assertEquals(2, total) def test_additional_emails_must_be_considered(self): users = [] total = self.sender.send_email_to_users(users, ['*****@*****.**'], 'x', 'y', 'z') self.assertEquals(1, total) def test_only_users_that_did_not_disable_email_type_must_be_considered( self): email_type = G(EmailType, can_be_disabled=True) users = G(User, n=2) G(UserEmailPreferences, user=users[0], email_type=email_type, enabled=False) G(UserEmailPreferences, user=users[1], email_type=email_type, enabled=True) total = self.sender.send_email_to_users(users, [], 'x', 'y', 'z', email_type) self.assertEquals(1, total)
class EmailSenderSendEmailToGroupsTest(TestCase): def setUp(self): self.sender = EmailSender() def test_empty_groups_must_do_nothing(self): groups = G(Group, n=2) total = self.sender.send_email_to_groups(groups, [], 'x', 'y', 'z') self.assertEquals(0, total) def test_it_must_consider_all_active_users_in_all_groups(self): groups = [G(Group, n=1)] G(User, groups=groups, is_active=True) G(User, groups=groups, is_active=False) total = self.sender.send_email_to_groups(groups, [], 'x', 'y', 'z') self.assertEquals(1, total) def test_it_must_not_send_the_same_email_more_than_once_to_a_user_that_belongs_to_many_groups( self): groups = G(Group, n=2) G(User, groups=groups) total = self.sender.send_email_to_groups(groups, [], 'x', 'y', 'z') self.assertEquals(1, total) def test_additional_emails_must_be_considered(self): groups = [] total = self.sender.send_email_to_groups(groups, ['*****@*****.**'], 'x', 'y', 'z') self.assertEquals(1, total) def test_only_users_that_did_not_disable_email_type_must_be_considered( self): email_type = G(EmailType, can_be_disabled=True) groups = G(Group, n=2) users = G(User, n=2, groups=groups) G(UserEmailPreferences, user=users[0], email_type=email_type, enabled=False) G(UserEmailPreferences, user=users[1], email_type=email_type, enabled=True) total = self.sender.send_email_to_groups(groups, [], 'x', 'y', 'z', email_type) self.assertEquals(1, total)
def send_email(emails, subject, text_content=None, html_content=None, main_content=None): EmailSender().send_email(emails, subject, text_content, html_content, main_content)
class EmailSenderSendEmailToGroupsTest(TestCase): def setUp(self): self.sender = EmailSender() def test_empty_groups_must_do_nothing(self): groups = G(Group, n=2) total = self.sender.send_email_to_groups(groups, [], "x", "y", "z") self.assertEquals(0, total) def test_it_must_consider_all_active_users_in_all_groups(self): groups = [G(Group, n=1)] G(User, groups=groups, is_active=True) G(User, groups=groups, is_active=False) total = self.sender.send_email_to_groups(groups, [], "x", "y", "z") self.assertEquals(1, total) def test_it_must_not_send_the_same_email_more_than_once_to_a_user_that_belongs_to_many_groups(self): groups = G(Group, n=2) G(User, groups=groups) total = self.sender.send_email_to_groups(groups, [], "x", "y", "z") self.assertEquals(1, total) def test_additional_emails_must_be_considered(self): groups = [] total = self.sender.send_email_to_groups(groups, ["*****@*****.**"], "x", "y", "z") self.assertEquals(1, total) def test_only_users_that_did_not_disable_email_type_must_be_considered(self): email_type = G(EmailType, can_be_disabled=True) groups = G(Group, n=2) users = G(User, n=2, groups=groups) G(UserEmailPreferences, user=users[0], email_type=email_type, enabled=False) G(UserEmailPreferences, user=users[1], email_type=email_type, enabled=True) total = self.sender.send_email_to_groups(groups, [], "x", "y", "z", email_type) self.assertEquals(1, total)
class EmailSenderUsersOfGroupsTest(TestCase): def setUp(self): self.sender = EmailSender() def test_user_without_groups_must_consider_only_active_users(self): u1 = G(User, is_active=True) u2 = G(User, is_active=False) self.assertTrue(u1 in self.sender.users_of_groups(None)) self.assertTrue(u2 not in self.sender.users_of_groups(None)) def test_user_without_groups_must_not_be_selected(self): g1 = G(Group) u1 = G(User) self.assertTrue(u1 not in self.sender.users_of_groups([g1])) def test_user_must_have_at_least_one_group(self): g1, g2, g3 = G(Group, n=3) u1 = G(User, groups=[g1, g2]) u2 = G(User, groups=[g1]) u3 = G(User, groups=[g3]) groups = [g1, g2] self.assertTrue(u1 in self.sender.users_of_groups(groups)) self.assertTrue(u2 in self.sender.users_of_groups(groups)) self.assertTrue(u3 not in self.sender.users_of_groups(groups)) def test_user_without_at_least_one_of_the_selected_group_must_not_be_selected(self): g1, g2 = G(Group, n=2) u1 = G(User, groups=2) self.assertTrue(u1 not in self.sender.users_of_groups([g1, g2]))
class EmailSenderUsersOfGroupsTest(TestCase): def setUp(self): self.sender = EmailSender() def test_user_without_groups_must_consider_only_active_users(self): u1 = G(User, is_active=True) u2 = G(User, is_active=False) self.assertTrue(u1 in self.sender.users_of_groups(None)) self.assertTrue(u2 not in self.sender.users_of_groups(None)) def test_user_without_groups_must_not_be_selected(self): g1 = G(Group) u1 = G(User) self.assertTrue(u1 not in self.sender.users_of_groups([g1])) def test_user_must_have_at_least_one_group(self): g1, g2, g3 = G(Group, n=3) u1 = G(User, groups=[g1, g2]) u2 = G(User, groups=[g1]) u3 = G(User, groups=[g3]) groups = [g1, g2] self.assertTrue(u1 in self.sender.users_of_groups(groups)) self.assertTrue(u2 in self.sender.users_of_groups(groups)) self.assertTrue(u3 not in self.sender.users_of_groups(groups)) def test_user_without_at_least_one_of_the_selected_group_must_not_be_selected( self): g1, g2 = G(Group, n=2) u1 = G(User, groups=2) self.assertTrue(u1 not in self.sender.users_of_groups([g1, g2]))
class EmailSenderSendEmailToUsersTest(TestCase): def setUp(self): self.sender = EmailSender() def test_default_usage(self): users = G(User, n=2) total = self.sender.send_email_to_users(users, [], "x", "y", "z") self.assertEquals(2, total) def test_additional_emails_must_be_considered(self): users = [] total = self.sender.send_email_to_users(users, ["*****@*****.**"], "x", "y", "z") self.assertEquals(1, total) def test_only_users_that_did_not_disable_email_type_must_be_considered(self): email_type = G(EmailType, can_be_disabled=True) users = G(User, n=2) G(UserEmailPreferences, user=users[0], email_type=email_type, enabled=False) G(UserEmailPreferences, user=users[1], email_type=email_type, enabled=True) total = self.sender.send_email_to_users(users, [], "x", "y", "z", email_type) self.assertEquals(1, total)
def setUp(self): self.sender = EmailSender()
def send_email_to_users(users, additional_emails, subject, content, html_content): EmailSender().send_email_to_users(users, additional_emails, subject, content, html_content)
def send_email_to_groups(groups, additional_emails, subject, content, html_content): EmailSender().send_email_to_groups(groups, additional_emails, subject, content, html_content)