def test_does_not_send_to_everyone_not_in_list(self):
        subscribed_people = []
        subscribed_people_emails = []
        nonsubscribed_people = []
        nonsubscribed_people_emails = []
        num_subscribers = Factory.rand_int(end=20)
        num_nonsubscribers = Factory.rand_int(end=20)
        for i in range(0, num_subscribers):
            s = Factory.subscription(newsletter=self.newsletter)
            s.double_opt_in()
            subscribed_people.append(s)
            subscribed_people_emails.append(s.person.email)

        for i in range(0, num_nonsubscribers):
            p = Factory.person()
            nonsubscribed_people.append(p)
            nonsubscribed_people_emails.append(p.email)

        self.send_newsletter_message()
        self.assertEquals(len(mail.outbox), num_subscribers)
        for m in mail.outbox:
            self.assertEquals(len(m.to), 1)
            self.assertIn(m.to[0], subscribed_people_emails)
            self.assertNotIn(m.to[0], nonsubscribed_people_emails)
Example #2
0
 def create_subscribed_person(self):
     self.subscription = Factory.subscription()
     self.person = self.subscription.person
     self.newsletter = self.subscription.newsletter
     self.subscription.double_opt_in()