def test_basic(self): # create some work items items = [ # user, date, hours, text, job (self.user, self.today, 1, "item1", Job.objects.filter(name="Job_Today")[0]), (self.user, self.yesterday, 2, "item2", Job.objects.filter(name="Job_Today")[0]), (self.user, self.today_minus_2, 3, "item3", Job.objects.filter(name="Job_Today")[0]), (self.user, self.today_minus_3, 4, "item4", Job.objects.filter(name="Job_Today")[0]), (self.user2, self.today, 5, "item5", Job.objects.filter(name="Job_Today")[0]), (self.user2, self.yesterday, 6, "item6", Job.objects.filter(name="Job_Today")[0]), (self.user2, self.today_minus_2, 7, "item7", Job.objects.filter(name="Job_Today")[0]), (self.user2, self.today_minus_3, 8, "item8", Job.objects.filter(name="Job_Today")[0]), (self.user3, self.yesterday, 9, "item9", Job.objects.filter(name="Job_Today")[0]), (self.user4, self.last_week, 10, "item10", Job.objects.filter(name="Job_Today")[0]), (self.user5, self.tomorrow, 11, "item11", Job.objects.filter(name="Job_Today")[0]), ] for item in items: wi = WorkItem.objects.create(user=item[0], date=item[1], hours=item[2], text=item[3], job=item[4]) wi.save() workday, created = WorkDay.objects.get_or_create(user=item[0], date=item[1]) workday.reconciled = True workday.save() # try to send emails tasks.send_reminder_emails() email_count = { 1: 6, 2: 5, 3: 8, 4: 11, 5: 11, 6: 0, 7: 0 } emails_sent = email_count[datetime.date.today().isoweekday()] self.assertEquals(len(mail.outbox), emails_sent) # user3, user4, user5 all_recipients = list(m.to[0] for m in mail.outbox) self.assertEquals(len(all_recipients), emails_sent) if emails_sent: self.assertTrue("*****@*****.**" in all_recipients) self.assertTrue("*****@*****.**" in all_recipients) self.assertTrue("*****@*****.**" in all_recipients)