Exemple #1
0
    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)