def test_combine_tasks(): p1 = Process(name='p1') p2 = Process(name='p2') p3 = Process(name='p3') p4 = Process(name='p4') r100 = Resources(cpu=1, ram=0, disk=0) r010 = Resources(cpu=0, ram=1, disk=0) r001 = Resources(cpu=0, ram=0, disk=1) r111 = Units.resources_sum(r100, r010, r001) t1 = Task(name="p1p2", processes=[p1, p2], constraints=order(p1, p2), resources=Units.resources_sum(r100, r010)) t2 = Task(name="p3p4", processes=[p3, p4], constraints=order(p3, p4), resources=r001) assert combine_tasks() == Task() assert combine_tasks(t1) == t1 assert combine_tasks(t2) == t2 t3 = combine_tasks(t1, t2) assert t3.name() == t2.name() assert t3.resources() == r111 assert set(t3.processes()) == set([p1, p2, p3, p4]) assert set(t3.constraints()) == set(order(p1, p2) + order(p3, p4)) t4 = concat_tasks(t1, t2) assert t4.name() == t2.name() assert t4.resources() == r111 assert set(t4.processes()) == set([p1, p2, p3, p4]) assert set(t4.constraints()) == set( order(p1, p2) + order(p3, p4) + order(p1, p3) + order(p1, p4) + order(p2, p3) + order(p2, p4))
def test_order(): p1 = Process(name='p1') p2 = Process(name='p2') p1p2 = [Constraint(order=['p1', 'p2'])] assert order(p1, p2) == p1p2 assert order('p1', p2) == p1p2 assert order(p1, 'p2') == p1p2 assert order('p1', 'p2') == p1p2 assert order(u'p1', 'p2') == p1p2 with pytest.raises(ValueError): order([p1]) with pytest.raises(ValueError): order(None)