diff options
author | Alexandre Fayolle <alexandre.fayolle@logilab.fr> | 2006-12-05 10:26:50 +0100 |
---|---|---|
committer | Alexandre Fayolle <alexandre.fayolle@logilab.fr> | 2006-12-05 10:26:50 +0100 |
commit | 690a51897fb39719c05c17b4e83c1b0cd7ae0b48 (patch) | |
tree | 79462db7a2f83b9ead07a868b8feb27dc5767400 | |
parent | 745345647e2ac1b23ae273a8a5148539fafb3edf (diff) | |
download | logilab-common-690a51897fb39719c05c17b4e83c1b0cd7ae0b48.tar.gz |
flatten testswq
-rw-r--r-- | test/unittest_tree.py | 15 | ||||
-rw-r--r-- | tree.py | 9 |
2 files changed, 23 insertions, 1 deletions
diff --git a/test/unittest_tree.py b/test/unittest_tree.py index aecb284..598a4a2 100644 --- a/test/unittest_tree.py +++ b/test/unittest_tree.py @@ -24,6 +24,21 @@ class Node_ClassTest(TestCase): def setUp(self): """ called before each test from this class """ self.o = make_tree(tree) + + + def test_flatten(self): + result = [r.id for r in self.o.flatten()] + expected = ['root', 'child_1_1', 'child_2_1', 'child_2_2', 'child_3_1', 'child_1_2', 'child_2_3'] + self.assertListEqual(result, expected) + + def test_flatten_with_outlist(self): + resultnodes = [] + self.o.flatten(resultnodes) + result = [r.id for r in resultnodes] + expected = ['root', 'child_1_1', 'child_2_1', 'child_2_2', 'child_3_1', 'child_1_2', 'child_2_3'] + self.assertListEqual(result, expected) + + def test_known_values_remove(self): """ remove a child node @@ -190,7 +190,14 @@ class Node : """ return a list with all the nodes descendant from this node """ - return flatten(self) + if _list is None: + _list = [] + _list.append(self) + for c in self.children: + c.flatten(_list) + return _list + +## return flatten(self) def lineage(self): """ |