diff --git a/awx/main/tests/unit/scheduler/test_dag_simple.py b/awx/main/tests/unit/scheduler/test_dag_simple.py new file mode 100644 index 0000000000..3494f98f27 --- /dev/null +++ b/awx/main/tests/unit/scheduler/test_dag_simple.py @@ -0,0 +1,42 @@ +import pytest + +from awx.main.scheduler.dag_simple import SimpleDAG + + +@pytest.fixture +def node_generator(): + def fn(): + return object() + return fn + + +@pytest.fixture +def simple_cycle_1(node_generator): + g = SimpleDAG() + nodes = [node_generator() for i in range(4)] + map(lambda n: g.add_node(n), nodes) + + r''' + 0 + /\ + / \ + . . + 1---.2 + . | + | | + -----| + . + 3 + ''' + g.add_edge(nodes[0], nodes[1], "success_nodes") + g.add_edge(nodes[0], nodes[2], "success_nodes") + g.add_edge(nodes[2], nodes[3], "success_nodes") + g.add_edge(nodes[2], nodes[1], "success_nodes") + g.add_edge(nodes[1], nodes[2], "success_nodes") + return (g, nodes) + + +def test_has_cycle(simple_cycle_1): + (g, nodes) = simple_cycle_1 + + assert g.has_cycle() is True