def test_target_task_graph(maketgg): "The target_task_graph property has the targeted tasks and deps" tgg = maketgg(["_fake-t-1"]) assert tgg.target_task_graph.graph == graph.Graph( {"_fake-t-0", "_fake-t-1"}, {("_fake-t-1", "_fake-t-0", "prev")}) assert sorted(tgg.target_task_graph.tasks.keys()) == sorted( ["_fake-t-0", "_fake-t-1"])
def test_full_task_set(maketgg): "The full_task_set property has all tasks" tgg = maketgg() assert tgg.full_task_set.graph == graph.Graph( {"_fake-t-0", "_fake-t-1", "_fake-t-2"}, set()) assert sorted(tgg.full_task_set.tasks.keys()) == sorted( ["_fake-t-0", "_fake-t-1", "_fake-t-2"])
def make_graph(*tasks_and_edges, **kwargs): tasks = {t.label: t for t in tasks_and_edges if isinstance(t, Task)} edges = {e for e in tasks_and_edges if not isinstance(e, Task)} tg = TaskGraph(tasks, graph.Graph(set(tasks), edges)) if kwargs.get("deps", True): # set dependencies based on edges for l, r, name in tg.graph.edges: tg.tasks[l].dependencies[name] = r return tg
def test_optimized_task_graph(maketgg): "The optimized task graph contains task ids" tgg = maketgg(["_fake-t-2"]) tid = tgg.label_to_taskid assert tgg.optimized_task_graph.graph == graph.Graph( {tid["_fake-t-0"], tid["_fake-t-1"], tid["_fake-t-2"]}, { (tid["_fake-t-1"], tid["_fake-t-0"], "prev"), (tid["_fake-t-2"], tid["_fake-t-1"], "prev"), }, )
def test_full_task_graph(maketgg): "The full_task_graph property has all tasks, and links" tgg = maketgg() assert tgg.full_task_graph.graph == graph.Graph( {"_fake-t-0", "_fake-t-1", "_fake-t-2"}, { ("_fake-t-1", "_fake-t-0", "prev"), ("_fake-t-2", "_fake-t-1", "prev"), }, ) assert sorted(tgg.full_task_graph.tasks.keys()) == sorted( ["_fake-t-0", "_fake-t-1", "_fake-t-2"])
def make_opt_graph(*tasks_and_edges): tasks = {t.task_id: t for t in tasks_and_edges if isinstance(t, Task)} edges = {e for e in tasks_and_edges if not isinstance(e, Task)} return TaskGraph(tasks, graph.Graph(set(tasks), edges))
def test_target_task_set(maketgg): "The target_task_set property has the targeted tasks" tgg = maketgg(["_fake-t-1"]) assert tgg.target_task_set.graph == graph.Graph({"_fake-t-1"}, set()) assert set(tgg.target_task_set.tasks.keys()) == {"_fake-t-1"}