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