예제 #1
0
    def test_add_invalid_branches(self):
        graph = MagicMock(Graph)
        graph2 = MagicMock(Graph)
        node = Node(graph)
        self.assertEqual(graph, node.graph)

        b1 = MagicMock(Branch)
        b1.graph = graph2
        b1.end = node

        def add_ingoing():
            node.add_ingoing_branch(b1)

        self.assertRaises(ValueError, add_ingoing)

        b2 = MagicMock(Branch)
        b2.graph = graph2
        b2.start = node

        def add_outgoing():
            node.add_outgoing_branch(b2)

        self.assertRaises(ValueError, add_outgoing)

        b1.graph = graph
        b1.start = MagicMock(Node)
        b1.end = MagicMock(Node)

        b2.graph = graph
        b2.start = MagicMock(Node)
        b2.end = MagicMock(Node)

        self.assertRaises(ValueError, add_ingoing)
        self.assertRaises(ValueError, add_outgoing)

        node.graph = None
        b1.start = node
        b1.end = node
        b2.start = node
        b2.end = node
        self.assertRaises(ValueError, add_ingoing)
        self.assertRaises(ValueError, add_outgoing)

        node.graph = graph
        add_ingoing()
        add_outgoing()

        self.assertRaises(ValueError, add_ingoing)
        self.assertRaises(ValueError, add_outgoing)
예제 #2
0
    def test_set_graph(self):
        graph = MagicMock(Graph)
        node = Node(graph)
        self.assertEqual(graph, node.graph)

        graph2 = MagicMock(Graph)

        def set_graph():
            node.graph = graph2

        self.assertRaises(ValueError, set_graph)
        node.graph = None
        self.assertIsNone(node.graph)
        node.graph = graph2
        self.assertEqual(graph2, node.graph)