Exemplo n.º 1
0
    def test_collect_blown(self):
        utils.make_workshift_pool_hours()
        self.assertEqual(
            ([], [], []),
            utils.collect_blown(),
            )

        self.assertEqual(
            ([], [], []),
            utils.collect_blown(semester=self.semester),
            )

        moment = localtime(now().replace(
            hour=20, minute=0, second=0, microsecond=0,
        ))
        past = moment - timedelta(days=1)

        WorkshiftInstance.objects.create(
            info=InstanceInfo.objects.create(
                title="Closed",
                pool=self.p1,
                end_time=time(12),
            ),
            closed=True,
            date=past.date(),
            semester=self.semester,
        )
        to_close = WorkshiftInstance.objects.create(
            info=InstanceInfo.objects.create(
                title="To be closed",
                pool=self.p1,
                end_time=time(12),
            ),
            date=past.date(),
            semester=self.semester,
        )
        WorkshiftInstance.objects.create(
            info=InstanceInfo.objects.create(
                title="Not Blown",
                pool=self.p1,
                end_time=time(12),
            ),
            date=moment.date(),
            semester=self.semester,
        )
        blown = WorkshiftInstance.objects.create(
            info=InstanceInfo.objects.create(
                title="Blown",
                pool=self.p1,
                end_time=time(12),
            ),
            date=past.date(),
            workshifter=self.profile,
            semester=self.semester,
        )
        WorkshiftInstance.objects.create(
            info=InstanceInfo.objects.create(
                title="Edge Case 1: Not Closed",
                pool=self.p1,
                end_time=moment.time(),
            ),
            date=moment.date(),
            semester=self.semester,
        )
        edge_datetime = moment - timedelta(
            hours=self.p1.verify_cutoff, minutes=1,
        )
        edge_case_2 = WorkshiftInstance.objects.create(
            info=InstanceInfo.objects.create(
                title="Edge Case 2: Closed",
                pool=self.p1,
                end_time=edge_datetime.time(),
            ),
            date=edge_datetime.date(),
        )
        signed_out_1 = WorkshiftInstance.objects.create(
            info=InstanceInfo.objects.create(
                title="Workshifter signed out early enough",
                pool=self.p1,
                end_time=time(12),
            ),
            date=past.date(),
            semester=self.semester,
        )
        signed_out_2 = WorkshiftInstance.objects.create(
            info=InstanceInfo.objects.create(
                title="Workshifter signed out too late",
                pool=self.p1,
                end_time=time(12),
            ),
            liable=self.profile,
            date=past.date(),
            semester=self.semester,
        )
        self.assertEqual(
            ([to_close, edge_case_2, signed_out_1], [], [blown, signed_out_2]),
            utils.collect_blown(moment=moment),
        )
Exemplo n.º 2
0
 def do(self):
     utils.collect_blown()
Exemplo n.º 3
0
 def do(self):
     utils.collect_blown()