Exemplo n.º 1
0
def test_task_waits():
    dt = p1(daemon=True, max_failures=0)
    p = TaskPlanner(
        empty_task(processes=[
            dt(name='d3', min_duration=3),
            dt(name='d5', min_duration=5),
            dt(name='d7', min_duration=7)
        ]))
    assert p.runnable_at(timestamp=0) == _('d3', 'd5', 'd7')
    assert p.min_wait(timestamp=0) == 0

    p.set_running('d3')
    p.add_success('d3', timestamp=0)
    assert p.runnable_at(timestamp=0) == _('d5', 'd7')
    assert p.waiting_at(timestamp=0) == _('d3')
    assert approx_equal(p.get_wait('d3', timestamp=0), 3)
    assert approx_equal(p.min_wait(timestamp=0), 0)
    assert approx_equal(p.min_wait(timestamp=1), 0)
    assert p.waiting_at(timestamp=3) == empty
    assert p.runnable_at(timestamp=3) == _('d3', 'd5', 'd7')

    p.set_running('d3')
    p.set_running('d7')
    p.add_success('d7', timestamp=1)
    assert approx_equal(p.min_wait(timestamp=2), 0)
    p.set_running('d5')
    assert approx_equal(p.min_wait(timestamp=2), 6)
    p.add_success('d5', timestamp=2)
    p.add_success('d3', timestamp=2)
    assert approx_equal(p.min_wait(timestamp=3), 2)
    assert p.runnable_at(timestamp=2) == empty
    assert p.runnable_at(timestamp=5) == _('d3')
    assert p.runnable_at(timestamp=7) == _('d3', 'd5')
    assert p.runnable_at(timestamp=8) == _('d3', 'd5', 'd7')
def test_task_waits():
  dt = p1(daemon=True, max_failures=0)
  p = TaskPlanner(empty_task(processes=[dt(name='d3', min_duration=3),
                                        dt(name='d5', min_duration=5),
                                        dt(name='d7', min_duration=7)]))
  assert p.runnable_at(timestamp=0) == _('d3', 'd5', 'd7')
  assert p.min_wait(timestamp=0) == 0

  p.set_running('d3')
  p.add_success('d3', timestamp=0)
  assert p.runnable_at(timestamp=0) == _('d5', 'd7')
  assert p.waiting_at(timestamp=0) == _('d3')
  assert approx_equal(p.get_wait('d3', timestamp=0), 3)
  assert approx_equal(p.min_wait(timestamp=0), 0)
  assert approx_equal(p.min_wait(timestamp=1), 0)
  assert p.waiting_at(timestamp=3) == empty
  assert p.runnable_at(timestamp=3) == _('d3', 'd5', 'd7')

  p.set_running('d3')
  p.set_running('d7')
  p.add_success('d7', timestamp=1)
  assert approx_equal(p.min_wait(timestamp=2), 0)
  p.set_running('d5')
  assert approx_equal(p.min_wait(timestamp=2), 6)
  p.add_success('d5', timestamp=2)
  p.add_success('d3', timestamp=2)
  assert approx_equal(p.min_wait(timestamp=3), 2)
  assert p.runnable_at(timestamp=2) == empty
  assert p.runnable_at(timestamp=5) == _('d3')
  assert p.runnable_at(timestamp=7) == _('d3', 'd5')
  assert p.runnable_at(timestamp=8) == _('d3', 'd5', 'd7')