Added another migration-executor test to avoid regressions.
This commit is contained in:
parent
d2bcb05980
commit
51f2de1530
|
@ -325,3 +325,38 @@ class ExecutorUnitTests(TestCase):
|
|||
should_be_rolled_back = [b2_impl, a4_impl, a2_impl, a3_impl]
|
||||
exp = [(m, True) for m in should_be_rolled_back]
|
||||
self.assertEqual(plan, exp)
|
||||
|
||||
def test_backwards_nothing_to_do(self):
|
||||
"""
|
||||
If the current state satisfies the given target, do nothing.
|
||||
|
||||
a: 1 <--- 2
|
||||
b: \- 1
|
||||
c: \- 1
|
||||
|
||||
If a1 is applied already and a2 is not, and we're asked to migrate to
|
||||
a1, don't apply or unapply b1 or c1, regardless of their current state.
|
||||
"""
|
||||
a1_impl = FakeMigration('a1')
|
||||
a1 = ('a', '1')
|
||||
a2_impl = FakeMigration('a2')
|
||||
a2 = ('a', '2')
|
||||
b1_impl = FakeMigration('b1')
|
||||
b1 = ('b', '1')
|
||||
c1_impl = FakeMigration('c1')
|
||||
c1 = ('c', '1')
|
||||
graph = MigrationGraph()
|
||||
graph.add_node(a1, a1_impl)
|
||||
graph.add_node(a2, a2_impl)
|
||||
graph.add_node(b1, b1_impl)
|
||||
graph.add_node(c1, c1_impl)
|
||||
graph.add_dependency(None, a2, a1)
|
||||
graph.add_dependency(None, b1, a1)
|
||||
graph.add_dependency(None, c1, a1)
|
||||
|
||||
executor = MigrationExecutor(None)
|
||||
executor.loader = FakeLoader(graph, {a1, b1})
|
||||
|
||||
plan = executor.migration_plan({a1})
|
||||
|
||||
self.assertEqual(plan, [])
|
||||
|
|
Loading…
Reference in New Issue