summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBen Reilly <BReilly@clipcard.com>2014-09-05 15:26:05 -0700
committerAndrew Godwin <andrew@aeracode.org>2014-09-05 15:39:47 -0700
commit4ca44d5e10936f9dc2b370b965a91ccc75fb0955 (patch)
tree01a140c593ab8e8b718cbb290ca04dc1c2a0646d /tests
parente5cdfb151039cdd22a17480f0f1fb9ccbad5eb56 (diff)
[1.7.x] switch out recursive dfs for stack based approach, to avoid possibly hitting the recursion limit
Diffstat (limited to 'tests')
-rw-r--r--tests/migrations/test_graph.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/migrations/test_graph.py b/tests/migrations/test_graph.py
index ada8a5a1e5..23ec450246 100644
--- a/tests/migrations/test_graph.py
+++ b/tests/migrations/test_graph.py
@@ -134,6 +134,21 @@ class GraphTests(TestCase):
graph.forwards_plan, ("app_a", "0003"),
)
+ def test_dfs(self):
+ graph = MigrationGraph()
+ root = ("app_a", "1")
+ graph.add_node(root, None)
+ expected = [root]
+ for i in xrange(2, 1000):
+ parent = ("app_a", str(i - 1))
+ child = ("app_a", str(i))
+ graph.add_node(child, None)
+ graph.add_dependency(str(i), child, parent)
+ expected.append(child)
+
+ actual = graph.dfs(root, lambda x: graph.dependents.get(x, set()))
+ self.assertEqual(expected[::-1], actual)
+
def test_plan_invalid_node(self):
"""
Tests for forwards/backwards_plan of nonexistent node.