Example #1
0
    def test_remove(self):
        """
        Test removal of nodes.
        """
        tree = Tree()
        n1 = 'n1'
        n2 = 'n2'
        n3 = 'n3'
        n4 = 'n4'
        n5 = 'n5'

        tree.add(n1)
        tree.add(n2)
        tree.add(n3, parent=n1)
        tree.add(n4, parent=n3)
        tree.add(n5, parent=n4)

        assert tree._nodes == [n1, n3, n4, n5, n2]

        all_ch = list(tree.get_all_children(n1))
        assert all_ch == [ n3, n4, n5 ], all_ch

        tree.remove(n4)
        assert tree._nodes == [n1, n3, n2]

        tree.remove(n1)
        assert len(tree._children) == 2
        assert tree._children[None] == [n2]
        assert tree._children[n2] == []
        assert tree._nodes == [n2]