示例#1
0
    def test_graph_with_cycle(self):
        graph = PertGraph()
        graph._add_node(key='A', dependencies=['C'])
        graph._add_node(key='B', dependencies=['A'])
        graph._add_node(key='C', dependencies=['B'])

        self.assertRaises(ValueError, ChronologicalLayout, graph)
    def test_connected_graph(self):
        graph = PertGraph()
        graph._add_node(key='A', dependencies=[])
        graph._add_node(key='B', dependencies=['A'])
        graph._add_node(key='C', dependencies=['A'])

        graph_connectivity = GraphConnectivityDFS(graph)
        self.assertEqual(True, graph_connectivity.is_connected())
示例#3
0
    def test_non_cyclic_graph(self):
        graph = PertGraph()
        graph._add_node(key='A', dependencies=[])
        graph._add_node(key='B', dependencies=['A'])
        graph._add_node(key='C', dependencies=['A'])
        graph._add_node(key='D', dependencies=['B', 'C'])

        engine = CycleDetectorDFS(graph)
        self.assertEqual(False, engine.is_cyclic())
示例#4
0
    def test_cyclic_graph_1(self):
        graph = PertGraph()
        graph._add_node(key='A', dependencies=['C'])
        graph._add_node(key='B', dependencies=['A'])
        graph._add_node(key='C', dependencies=['B'])

        engine = CycleDetectorDFS(graph)
        self.assertEqual(True, engine.is_cyclic())
        self.assertEqual(['A', 'B', 'C', 'A'], engine.get_cycle())
示例#5
0
    def test_three_nodes_in_order(self):
        graph = PertGraph()
        graph._add_node(key='A', dependencies=[])
        graph._add_node(key='B', dependencies=['A'])
        graph._add_node(key='C', dependencies=['B'])

        engine = ChronologicalLayout(graph)
        engine.get_layout()

        self.assertEqual(['A'], engine._gates[0])
        self.assertEqual(['B'], engine._gates[1])
        self.assertEqual(['C'], engine._gates[2])
示例#6
0
def main():
    print('jira_pert is running...\n')
    options = parse_arguments()

    epic_key = options.key

    jira_api = JiraAPIv2()
    features = jira_api.get_issues_in_epic(epic_key)

    graph = PertGraph(features)
    graph.print()

    diagram = PertDiagram(graph)
    diagram.plot()