def test_if_scheduled_for_future_does_not_send_until_future(self):
        people = []
        num_subscribers = Factory.rand_int(end=20)
        for i in range(0, num_subscribers):
            s = Factory.subscription(newsletter=self.newsletter)
            s.double_opt_in()
            people.append(s)

        future_date = self.now() + datetime.timedelta(hours=1)
        self.scheduled_newsletter_message = Factory.scheduled_newsletter_message(
            newsletter=self.newsletter,
            send_at_date=future_date,
            send_at_hour=future_date.hour,
            send_at_minute=future_date.minute,
            use_local_time=False,
        )
        self.subject = self.scheduled_newsletter_message.message.subject
        self.body = self.scheduled_newsletter_message.message.body_text_unrendered
        queue_newsletter_message(self.scheduled_newsletter_message.hashid)
        process_outgoing_message_queue()
        self.assertEquals(len(mail.outbox), 0)

        with freeze_time(self.now() + datetime.timedelta(hours=1)):
            process_outgoing_message_queue()
            self.assertEquals(len(mail.outbox), num_subscribers)
Exemplo n.º 2
0
 def send_newsletter_message(self):
     self.scheduled_newsletter_message = Factory.scheduled_newsletter_message(
         newsletter=self.newsletter,
         send_at_date=self.now(),
         send_at_hour=self.now().hour,
         send_at_minute=self.now().minute,
         use_local_time=False,
     )
     self.subject = self.scheduled_newsletter_message.message.subject
     self.body_unrendered = self.scheduled_newsletter_message.message.body_text_unrendered
     queue_newsletter_message.delay(
         self.scheduled_newsletter_message.hashid)
     process_outgoing_message_queue()
    def test_if_scheduled_for_past_date_sends_immediately(self):
        people = []
        num_subscribers = Factory.rand_int(end=20)
        for i in range(0, num_subscribers):
            s = Factory.subscription(newsletter=self.newsletter)
            s.double_opt_in()
            people.append(s)

        self.scheduled_newsletter_message = Factory.scheduled_newsletter_message(
            newsletter=self.newsletter,
            send_at_date=self.now() - datetime.timedelta(days=2),
            send_at_hour=self.now().hour,
            send_at_minute=self.now().minute,
            use_local_time=False,
        )
        self.subject = self.scheduled_newsletter_message.message.subject
        self.body = self.scheduled_newsletter_message.message.body_text_unrendered
        queue_newsletter_message(self.scheduled_newsletter_message.hashid)
        process_outgoing_message_queue()
        self.assertEquals(len(mail.outbox), num_subscribers)