diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2021-05-20 14:17:53 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2021-05-20 14:17:53 -0400 |
commit | 8d5a9a1b0d32fff5726010afffa48cc0fb738238 (patch) | |
tree | d317665f5531aad7fb507e45273eed68da62ba28 /tests/test_revision.py | |
parent | 361076e847c7c60dd00438f1a612aba799e90b1d (diff) | |
download | alembic-8d5a9a1b0d32fff5726010afffa48cc0fb738238.tar.gz |
ensure heads remain unique in topological
Fixed regression where a revision file that contained its own down revision
as a dependency would cause an endless loop in the traversal logic.
Change-Id: Ie8bd3b4d9f81e4bda131ffdbabe7a90c4a715054
Fixes: #843
Diffstat (limited to 'tests/test_revision.py')
-rw-r--r-- | tests/test_revision.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/test_revision.py b/tests/test_revision.py index 31590e3..ef1202a 100644 --- a/tests/test_revision.py +++ b/tests/test_revision.py @@ -1347,6 +1347,16 @@ class GraphWithLoopTest(DownIterateTest, InvalidRevisionMapTest): ) self._assert_raises_revision_map_loop(map_, "a") + def test_revision_dupe_head(self): + r1 = Revision("user_foo", None) + r2 = Revision("user", "user_foo", dependencies="user_foo") + + self.map = RevisionMap(lambda: [r1, r2]) + + self._assert_iteration("heads", None, ["user", "user_foo"]) + + eq_(self.map._topological_sort([r1, r2], [r2]), ["user", "user_foo"]) + def test_revision_map_no_loop_w_overlapping_substrings(self): r1 = Revision("user_foo", None) r2 = Revision("user", "user_foo") |