示例#1
0
 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)
示例#5
0
 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_))
示例#8
0
    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_))
示例#9
0
    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_))
示例#10
0
 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]))
示例#11
0
 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]))
 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]))