Ejemplo n.º 1
0
def expire_overdue_runs():
    overdue_runs = Run.overdue_runs()
    for overdue_run in overdue_runs:
        overdue_run.update_status(Run.STATUS.expired)
        next_run = RunQueue.dequeue(overdue_run.runnable.contact_person_id)
        if next_run:
            schedule_run_for(next_run.runnable)
            next_run.update_status(RunQueue.STATUS.started)
Ejemplo n.º 2
0
def expire_overdue_runs():
    overdue_runs = Run.overdue_runs()
    for overdue_run in overdue_runs:
        overdue_run.update_status(Run.STATUS.expired)
        next_run = RunQueue.dequeue(overdue_run.runnable.contact_person_id)
        if next_run:
            schedule_run_for(next_run.runnable)
            next_run.update_status(RunQueue.STATUS.started)
Ejemplo n.º 3
0
def expire_overdue_runs():
    overdue_runs = Run.overdue_runs()
    for overdue_run in overdue_runs:
        overdue_run.status = Run.STATUS.expired
        overdue_run.save()
        next_run = RunQueue.dequeue(overdue_run.node.contact_person_id)
        if next_run:
            schedule_run_for(next_run.node)
            next_run.status = RunQueue.STATUS.started
            next_run.save()
Ejemplo n.º 4
0
    def test_should_not_get_completed_expired_or_cancelled_runs_when_getting_expired_runs(self):
        expired_run_date = datetime.date(1990, 1, 1)

        RunFactory(status=Run.STATUS.completed,
                       node=DistributionPlanNodeFactory(
                           delivery_date=expired_run_date))
        RunFactory(status=Run.STATUS.expired,
                       node=DistributionPlanNodeFactory(
                           delivery_date=expired_run_date))
        RunFactory(status=Run.STATUS.cancelled,
                       node=DistributionPlanNodeFactory(
                           delivery_date=expired_run_date))

        overdue_runs = Run.overdue_runs()

        self.assertEqual(len(overdue_runs), 0)
Ejemplo n.º 5
0
    def test_should_not_get_completed_expired_or_cancelled_runs_when_getting_expired_runs(
            self):
        expired_run_date = datetime.date(1990, 1, 1)

        RunFactory(
            status=Run.STATUS.completed,
            runnable=DeliveryNodeFactory(delivery_date=expired_run_date))
        RunFactory(
            status=Run.STATUS.expired,
            runnable=DeliveryNodeFactory(delivery_date=expired_run_date))
        RunFactory(
            status=Run.STATUS.cancelled,
            runnable=DeliveryNodeFactory(delivery_date=expired_run_date))

        overdue_runs = Run.overdue_runs()

        self.assertEqual(len(overdue_runs), 0)
Ejemplo n.º 6
0
    def test_should_get_over_due_runs(self):
        delivery_status_check_delay = datetime.timedelta(days=settings.DELIVERY_STATUS_CHECK_DELAY)
        max_allowed_reply_period = datetime.timedelta(days=settings.MAX_ALLOWED_REPLY_PERIOD)
        one_day = datetime.timedelta(days=1)

        today = datetime.datetime.combine(datetime.date.today(), datetime.datetime.min.time())
        expired_run_date = today - delivery_status_check_delay - max_allowed_reply_period - one_day
        valid_run_date = today - delivery_status_check_delay - max_allowed_reply_period + one_day

        expired_run = RunFactory(status=Run.STATUS.scheduled,
                                     node=DistributionPlanNodeFactory(
                                         delivery_date=expired_run_date))
        RunFactory(status=Run.STATUS.scheduled,
                       node=DistributionPlanNodeFactory(
                           delivery_date=valid_run_date))

        overdue_runs = Run.overdue_runs()

        self.assertEqual(len(overdue_runs), 1)
        self.assertEqual(overdue_runs[0], expired_run)
Ejemplo n.º 7
0
    def test_should_get_over_due_runs(self):
        delivery_status_check_delay = datetime.timedelta(
            days=settings.DELIVERY_STATUS_CHECK_DELAY)
        max_allowed_reply_period = datetime.timedelta(
            days=settings.MAX_ALLOWED_REPLY_PERIOD)
        one_day = datetime.timedelta(days=1)

        today = datetime.datetime.combine(datetime.date.today(),
                                          datetime.datetime.min.time())
        expired_run_date = today - delivery_status_check_delay - max_allowed_reply_period - one_day
        valid_run_date = today - delivery_status_check_delay - max_allowed_reply_period + one_day

        expired_run = RunFactory(
            status=Run.STATUS.scheduled,
            runnable=DeliveryNodeFactory(delivery_date=expired_run_date))
        RunFactory(status=Run.STATUS.scheduled,
                   runnable=DeliveryNodeFactory(delivery_date=valid_run_date))

        overdue_runs = Run.overdue_runs()

        self.assertEqual(len(overdue_runs), 1)
        self.assertEqual(overdue_runs[0], expired_run)