Exemplo n.º 1
0
def test_planner_unordered():
  p = Planner(['p1', 'p2', 'p3'], {})
  assert details(p) == (_('p1', 'p2', 'p3'), empty, empty)
  p.set_running('p2')
  assert details(p) == (_('p1', 'p3'), _('p2'), empty)
  with pytest.raises(AssertionError):
    p.set_finished('p3')
  p.set_running('p3')
  p.set_finished('p3')
  assert details(p) == (_('p1'), _('p2'), _('p3'))
  p.set_finished('p2')
  assert details(p) == (_('p1'), empty, _('p2', 'p3'))
  with pytest.raises(AssertionError):
    p.reset('p3')
  assert not p.is_complete()
  p.set_running('p1')
  p.set_finished('p1')
  assert p.is_complete()
Exemplo n.º 2
0
def test_planner_ordered():
  p = Planner(['p1', 'p2', 'p3'], {'p3': ['p2'], 'p2': ['p1']})
  assert details(p) == (_('p1'), empty, empty)
  assert not p.is_complete()
  for process in ('p2', 'p3'):
    with pytest.raises(AssertionError):
      p.set_running(process)
  p.set_running('p1')
  assert details(p) == (empty, _('p1'), empty)
  p.set_finished('p1')
  assert details(p) == (_('p2'), empty, _('p1'))
  for process in ('p1', 'p2', 'p3'):
    with pytest.raises(AssertionError):
      p.reset(process)
  p.set_running('p2')
  p.set_finished('p2')
  assert details(p) == (_('p3'), empty, _('p1', 'p2'))
  assert not p.is_complete()
  p.set_running('p3')
  p.set_finished('p3')
  assert p.is_complete()
Exemplo n.º 3
0
def test_planner_unsatisfiables():
    with pytest.raises(Planner.InvalidSchedule):
        Planner(['p1', 'p2'], {'p1': ['p2'], 'p2': ['p1']})
    with pytest.raises(Planner.InvalidSchedule):
        Planner(['p1', 'p2', 'p3'], {'p1': ['p2'], 'p2': ['p3'], 'p3': ['p1']})
Exemplo n.º 4
0
def test_planner_mixed():
    p = Planner(['p1', 'p2', 'p3', 'd1', 'd2'], {'p3': ['p2'], 'p2': ['p1']})
    assert details(p) == (_('p1', 'd1', 'd2'), empty, empty)
Exemplo n.º 5
0
def test_planner_ordered():
    p = Planner(['p1', 'p2', 'p3'], {'p3': ['p2'], 'p2': ['p1']})
    assert details(p) == (_('p1'), empty, empty)
    assert not p.is_complete()
    for process in ('p2', 'p3'):
        with pytest.raises(AssertionError):
            p.set_running(process)
    p.set_running('p1')
    assert details(p) == (empty, _('p1'), empty)
    p.set_finished('p1')
    assert details(p) == (_('p2'), empty, _('p1'))
    for process in ('p1', 'p2', 'p3'):
        with pytest.raises(AssertionError):
            p.reset(process)
    p.set_running('p2')
    p.set_finished('p2')
    assert details(p) == (_('p3'), empty, _('p1', 'p2'))
    assert not p.is_complete()
    p.set_running('p3')
    p.set_finished('p3')
    assert p.is_complete()
Exemplo n.º 6
0
def test_planner_unordered():
    p = Planner(['p1', 'p2', 'p3'], {})
    assert details(p) == (_('p1', 'p2', 'p3'), empty, empty)
    p.set_running('p2')
    assert details(p) == (_('p1', 'p3'), _('p2'), empty)
    with pytest.raises(AssertionError):
        p.set_finished('p3')
    p.set_running('p3')
    p.set_finished('p3')
    assert details(p) == (_('p1'), _('p2'), _('p3'))
    p.set_finished('p2')
    assert details(p) == (_('p1'), empty, _('p2', 'p3'))
    with pytest.raises(AssertionError):
        p.reset('p3')
    assert not p.is_complete()
    p.set_running('p1')
    p.set_finished('p1')
    assert p.is_complete()
Exemplo n.º 7
0
def test_planner_empty():
    p = Planner(set(), {})
    assert details(p) == (empty, empty, empty)