def test_task_fails(): dt = p1(max_failures=1, min_duration=1) p = TaskPlanner(empty_task(processes=[dt(name='d1'), dt(name='d2')])) assert p.runnable_at(timestamp=0) == _('d1', 'd2') p.set_running('d1') p.set_running('d2') assert p.runnable_at(timestamp=0) == empty p.add_failure('d1', timestamp=0) p.add_failure('d2', timestamp=0) assert p.runnable_at(timestamp=0) == empty assert p.min_wait(timestamp=0) == TaskPlanner.INFINITY p = TaskPlanner(empty_task(processes=[dt(name='d1'), dt(name='d2')])) assert p.runnable_at(timestamp=0) == _('d1', 'd2') p.set_running('d1') p.set_failed('d1') assert p.runnable_at(timestamp=0) == _('d2') p.set_running('d2') assert p.runnable_at(timestamp=0) == empty p.add_failure('d2', timestamp=0) assert p.runnable_at(timestamp=0) == empty assert p.min_wait(timestamp=0) == TaskPlanner.INFINITY # test max_failures=0 && daemon==True ==> retries forever p = TaskPlanner( empty_task(processes=[dt(name='d1', max_failures=0, daemon=True)])) for k in range(10): p.set_running('d1') assert 'd1' in p.running assert 'd1' not in p.failed p.add_failure('d1') assert 'd1' not in p.running assert 'd1' not in p.failed p.set_running('d1') assert 'd1' in p.running assert 'd1' not in p.failed p.add_success('d1') assert 'd1' not in p.running assert 'd1' not in p.failed assert 'd1' not in p.finished p = TaskPlanner(empty_task(processes=[dt(name='d1', max_failures=0)])) p.set_running('d1') assert 'd1' in p.running assert 'd1' not in p.failed p.add_failure('d1') assert 'd1' not in p.running assert 'd1' not in p.failed p.set_running('d1') assert 'd1' in p.running assert 'd1' not in p.failed p.add_success('d1') assert 'd1' not in p.running assert 'd1' not in p.failed assert 'd1' in p.finished
def test_task_fails(): dt = p1(max_failures=1, min_duration=1) p = TaskPlanner(empty_task(processes = [dt(name='d1'), dt(name='d2')])) assert p.runnable_at(timestamp=0) == _('d1', 'd2') p.set_running('d1') p.set_running('d2') assert p.runnable_at(timestamp=0) == empty p.add_failure('d1', timestamp=0) p.add_failure('d2', timestamp=0) assert p.runnable_at(timestamp=0) == empty assert p.min_wait(timestamp=0) == TaskPlanner.INFINITY p = TaskPlanner(empty_task(processes = [dt(name='d1'), dt(name='d2')])) assert p.runnable_at(timestamp=0) == _('d1', 'd2') p.set_running('d1') p.set_failed('d1') assert p.runnable_at(timestamp=0) == _('d2') p.set_running('d2') assert p.runnable_at(timestamp=0) == empty p.add_failure('d2', timestamp=0) assert p.runnable_at(timestamp=0) == empty assert p.min_wait(timestamp=0) == TaskPlanner.INFINITY # test max_failures=0 && daemon==True ==> retries forever p = TaskPlanner(empty_task(processes = [dt(name='d1', max_failures=0, daemon=True)])) for k in range(10): p.set_running('d1') assert 'd1' in p.running assert 'd1' not in p.failed p.add_failure('d1') assert 'd1' not in p.running assert 'd1' not in p.failed p.set_running('d1') assert 'd1' in p.running assert 'd1' not in p.failed p.add_success('d1') assert 'd1' not in p.running assert 'd1' not in p.failed assert 'd1' not in p.finished p = TaskPlanner(empty_task(processes = [dt(name='d1', max_failures=0)])) p.set_running('d1') assert 'd1' in p.running assert 'd1' not in p.failed p.add_failure('d1') assert 'd1' not in p.running assert 'd1' not in p.failed p.set_running('d1') assert 'd1' in p.running assert 'd1' not in p.failed p.add_success('d1') assert 'd1' not in p.running assert 'd1' not in p.failed assert 'd1' in p.finished