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]