def test_set_reference_tasks_at_init(): t1 = Task() f = Flow(name="test", reference_tasks=[t1], tasks=[t1]) assert f.reference_tasks() == set([t1]) == f.tasks == f.terminal_tasks() t2 = Task() f = Flow(name="test", reference_tasks=[t2], tasks=[t1, t2]) assert f.reference_tasks() == set([t2])
def test_cache_terminal_tasks(self): f = Flow(name="test") t1 = Task() t2 = Task() t3 = Task() f.add_edge(t1, t2) f.terminal_tasks() # check that cache holds result key = ("terminal_tasks", ()) assert f._cache[key] == set([t2]) # check that cache is read f._cache[key] = 1 assert f.terminal_tasks() == 1 f.add_edge(t2, t3) assert f.terminal_tasks() == set([t3])