def test_downgrade_branch_dependency(self): """c2branch depends on c1branch so taking down c1branch requires taking down both""" destination = "c1branch@{}".format(self.b.revision) source = self.d1.revision, self.d2.revision revs = self.env._downgrade_revs(destination, source) # Drops c1, d1 as requested, also drops d2 due to dependence on d1. # Full ordering of migrations is not consistent so verify partial # ordering only. rev_ids = [rev.revision.revision for rev in revs] assert set(rev_ids) == { self.c1.revision, self.d1.revision, self.d2.revision, } assert rev_ids.index(self.d1.revision) < rev_ids.index( self.c1.revision) assert rev_ids.index(self.d2.revision) < rev_ids.index( self.c1.revision) # Verify final state. heads = set(util.to_tuple(source, default=())) head = HeadMaintainer(mock.Mock(), heads) for rev in revs: head.update_to_step(rev) eq_(head.heads, set([self.c2.revision]))
def test_upgrade(self): head = HeadMaintainer(mock.Mock(), [self.a.revision]) """ upgrade a -> b2, b2 upgrade a -> b3, b3 upgrade b2, b3 -> c2, c2 upgrade c2 -> d2, d2 upgrade a -> b1, b1 upgrade b1, b2 -> c1, c1 upgrade c1 -> d1, d1 """ steps = [ (self.up_(self.b2), ('b2', )), (self.up_(self.b3), ( 'b2', 'b3', )), (self.up_(self.c2), ('c2', )), (self.up_(self.d2), ('d2', )), (self.up_(self.b1), ( 'b1', 'd2', )), (self.up_(self.c1), ('c1', 'd2')), (self.up_(self.d1), ('d1', 'd2')), ] for step, assert_ in steps: head.update_to_step(step) eq_(head.heads, set(assert_))
def test_upgrade(self): head = HeadMaintainer(mock.Mock(), [self.a.revision]) """ upgrade a -> b2, b2 upgrade a -> b3, b3 upgrade b2, b3 -> c2, c2 upgrade c2 -> d2, d2 upgrade a -> b1, b1 upgrade b1, b2 -> c1, c1 upgrade c1 -> d1, d1 """ steps = [ (self.up_(self.b2), ('b2',)), (self.up_(self.b3), ('b2', 'b3',)), (self.up_(self.c2), ('c2',)), (self.up_(self.d2), ('d2',)), (self.up_(self.b1), ('b1', 'd2',)), (self.up_(self.c1), ('c1', 'd2')), (self.up_(self.d1), ('d1', 'd2')), ] for step, assert_ in steps: head.update_to_step(step) eq_(head.heads, set(assert_))
def _assert_upgrade(self, destination, source, expected, expected_heads): revs = self.env._upgrade_revs(destination, source) eq_(revs, expected) heads = set(util.to_tuple(source, default=())) head = HeadMaintainer(mock.Mock(), heads) for rev in revs: head.update_to_step(rev) eq_(head.heads, expected_heads)
def test_upgrade(self): head = HeadMaintainer(mock.Mock(), [self.a.revision]) steps = [ (self.up_(self.b3), ("b3", )), (self.up_(self.b1), ("b1", "b3")), (self.up_(self.b2), ("b1", "b2", "b3")), (self.up_(self.c2), ("c2", )), (self.up_(self.d2), ("d2", )), (self.up_(self.c1), ("c1", "d2")), (self.up_(self.d1), ("d1", "d2")), ] for step, assert_ in steps: head.update_to_step(step) eq_(head.heads, set(assert_))
def test_upgrade(self): head = HeadMaintainer(mock.Mock(), [self.a.revision]) steps = [ (self.up_(self.b3), ('b3',)), (self.up_(self.b1), ('b1', 'b3',)), (self.up_(self.b2), ('b1', 'b2', 'b3',)), (self.up_(self.c2), ('c2',)), (self.up_(self.d2), ('d2',)), (self.up_(self.c1), ('c1', 'd2')), (self.up_(self.d1), ('d1', 'd2')), ] for step, assert_ in steps: head.update_to_step(step) eq_(head.heads, set(assert_))
def test_upgrade(self): head = HeadMaintainer(mock.Mock(), [self.a.revision]) steps = [ (self.up_(self.b3), ("b3",)), (self.up_(self.b1), ("b1", "b3")), (self.up_(self.b2), ("b1", "b2", "b3")), (self.up_(self.c2), ("c2",)), (self.up_(self.d2), ("d2",)), (self.up_(self.c1), ("c1", "d2")), (self.up_(self.d1), ("d1", "d2")), ] for step, assert_ in steps: head.update_to_step(step) eq_(head.heads, set(assert_))
def test_stamp_across_dependency(self): heads = [self.e1.revision, self.c2.revision] head = HeadMaintainer(mock.Mock(), heads) for step in self.env._stamp_revs(self.b1.revision, heads): head.update_to_step(step) eq_(head.heads, set([self.b1.revision]))
def test_downgrade_to_dependency(self): heads = [self.c2.revision, self.d1.revision] head = HeadMaintainer(mock.Mock(), heads) head.update_to_step(self.down_(self.d1)) eq_(head.heads, set([self.c2.revision]))