diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-02-12 07:08:35 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-02-12 07:08:35 +0000 |
commit | c6d57a022793e9195dd3355bbfd35e8c96c6dd64 (patch) | |
tree | 9c34e2f894865ffdab700e9b3f35afb09d64533a | |
parent | 5a8d90736d62ba791fea92cbaeeb8f07dfacb4b6 (diff) | |
parent | 3bf3249cc7103dcdcbdc3881a546a6cad8e4b65d (diff) | |
download | taskflow-c6d57a022793e9195dd3355bbfd35e8c96c6dd64.tar.gz |
Merge "DFS in right order when not starting at the provided node"
-rw-r--r-- | taskflow/tests/unit/test_types.py | 9 | ||||
-rw-r--r-- | taskflow/types/tree.py | 3 |
2 files changed, 10 insertions, 2 deletions
diff --git a/taskflow/tests/unit/test_types.py b/taskflow/tests/unit/test_types.py index 4daea4b..83d938d 100644 --- a/taskflow/tests/unit/test_types.py +++ b/taskflow/tests/unit/test_types.py @@ -142,6 +142,15 @@ class TreeTest(test.TestCase): self.assertEqual(set(['animal', 'reptile', 'mammal', 'horse', 'primate', 'monkey', 'human']), set(things)) + def test_dfs_itr_order(self): + root = self._make_species() + things = list([n.item for n in root.dfs_iter(include_self=True)]) + self.assertEqual(['animal', 'mammal', 'horse', 'primate', + 'monkey', 'human', 'reptile'], things) + things = list([n.item for n in root.dfs_iter(include_self=False)]) + self.assertEqual(['mammal', 'horse', 'primate', + 'monkey', 'human', 'reptile'], things) + class StopWatchTest(test.TestCase): def setUp(self): diff --git a/taskflow/types/tree.py b/taskflow/types/tree.py index 7777044..2386bc9 100644 --- a/taskflow/types/tree.py +++ b/taskflow/types/tree.py @@ -40,8 +40,7 @@ class _DFSIter(object): if self.include_self: stack.append(self.root) else: - for child_node in self.root: - stack.append(child_node) + stack.extend(self.root.reverse_iter()) while stack: node = stack.pop() # Visit the node. |