summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-02-12 07:08:35 +0000
committerGerrit Code Review <review@openstack.org>2015-02-12 07:08:35 +0000
commitc6d57a022793e9195dd3355bbfd35e8c96c6dd64 (patch)
tree9c34e2f894865ffdab700e9b3f35afb09d64533a
parent5a8d90736d62ba791fea92cbaeeb8f07dfacb4b6 (diff)
parent3bf3249cc7103dcdcbdc3881a546a6cad8e4b65d (diff)
downloadtaskflow-c6d57a022793e9195dd3355bbfd35e8c96c6dd64.tar.gz
Merge "DFS in right order when not starting at the provided node"
-rw-r--r--taskflow/tests/unit/test_types.py9
-rw-r--r--taskflow/types/tree.py3
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.