Example #1
0
    def testCollectFromAssignment_NoneAssigned(self):
        c, d, v, a, fix_to_date = self.setup_sendable_test()

        f.TriggerByAssignmentFactory.create(campaign=c)

        result = Sendable.collect_from_assignment(fix_to_date)

        self.assertEqual(0, result)
        all_qs = Sendable.objects.all()
        self.assertQuerysetEqual(all_qs, [])
Example #2
0
    def testCollectFromAssignment_OneAssigned(self):
        c, d, v, a, fix_to_date = self.setup_sendable_test()
        when = datetime.combine(fix_to_date, time(1, 0, 0, 0, pytz.utc))
        f.AssignmentFactory(volunteer=v, duty=d, created=when)
        f.TriggerByAssignmentFactory.create(campaign=c)

        result = Sendable.collect_from_assignment(fix_to_date)

        self.assertEqual(1, result)
        all_qs = Sendable.objects.all()
        self.assertQuerysetEqual(all_qs, [v],
                                 transform=lambda s: s.volunteer)
Example #3
0
    def testCollectFromAssignment_OneAssignedButEventInPast(self):
        c, d, v, a, fix_to_date = self.setup_sendable_test()
        when = datetime.combine(fix_to_date, time(1, 0, 0, 0, pytz.utc))
        f.AssignmentFactory(volunteer=v, duty=d, created=when)
        f.TriggerByAssignmentFactory.create(campaign=c)

        d.event.date = fix_to_date - timedelta(days=1)
        d.event.save()

        result = Sendable.collect_from_assignment(fix_to_date)

        self.assertEqual(0, result)
        all_qs = Sendable.objects.all()
        self.assertQuerysetEqual(all_qs, [])
Example #4
0
    def testCollectFromAssignment_OnlyAssignedOnRightDayNoOffset(self):
        c, d, v, a, fix_to_date = self.setup_sendable_test()
        v2, v3, v4 = f.VolunteerFactory.create_batch(3)
        when = datetime.combine(fix_to_date, time(1, 0, 0, 0, pytz.utc))
        f.AssignmentFactory(volunteer=v, duty=d, created=when - timedelta(1))
        f.AssignmentFactory(volunteer=v2, duty=d, created=when)
        f.AssignmentFactory(volunteer=v3, duty=d, created=when)
        f.AssignmentFactory(volunteer=v4, duty=d, created=when + timedelta(1))
        f.TriggerByAssignmentFactory.create(campaign=c)

        result = Sendable.collect_from_assignment(fix_to_date)

        self.assertEqual(2, result)
        all_qs = Sendable.objects.all().order_by('id')
        self.assertQuerysetEqual(all_qs, [v3, v2],
                                 transform=lambda s: s.volunteer)
Example #5
0
    def testCollectFromAssignment_MultipleCampaignsDifferentActivites(self):
        c, d, v, a, fix_to_date = self.setup_sendable_test()
        c.locations.add(d.location)
        when = datetime.combine(fix_to_date, time(1, 0, 0, 0, pytz.utc))
        f.AssignmentFactory(volunteer=v, duty=d, created=when)

        # Create and assign event at different location
        d2 = f.FullDutyFactory()
        a2 = f.ActivityFactory()
        d2.event = d.event
        d2.activity = a2
        d2.save()
        f.AssignmentFactory(volunteer=v, duty=d2, created=when)

        f.TriggerByAssignmentFactory.create(campaign=c)

        result = Sendable.collect_from_assignment(fix_to_date)

        self.assertEqual(1, result)
        all_qs = Sendable.objects.all()
        self.assertQuerysetEqual(all_qs, [v],
                                 transform=lambda s: s.volunteer)