def test_start_all_upgrades(self): """Start all upgrades starts upgrading all branches.""" upgrader = self.prepare() branch_changed(upgrader.branch, upgrader.bzr_branch) Upgrader.start_all_upgrades(upgrader.target_dir, upgrader.logger) upgraded = upgrader.get_bzrdir().open_repository() self.assertIs(RepositoryFormat2a, upgraded._format.__class__) self.assertEqual('foo', upgraded.get_revision('prepare-commit').message)
def main(self): if len(self.args) < 1: raise LaunchpadScriptFailure('Please specify a target directory.') if len(self.args) > 1: raise LaunchpadScriptFailure('Too many arguments.') target_dir = self.args[0] with server(get_rw_server()): if self.options.finish: Upgrader.finish_all_upgrades(target_dir, self.logger) else: Upgrader.start_all_upgrades(target_dir, self.logger)
def test_finish_all_upgrades(self): """Finish all upgrades behaves as expected.""" upgrader = self.prepare() branch_changed(upgrader.branch, upgrader.bzr_branch) upgrader.start_upgrade() Upgrader.finish_all_upgrades(upgrader.target_dir, upgrader.logger) upgraded = upgrader.branch.getBzrBranch() self.assertIs(RepositoryFormat2a, upgraded.repository._format.__class__) self.assertEqual( 'foo', upgraded.repository.get_revision('prepare-commit').message)
def getUpgrader(self, bzr_branch, branch): """Return an upgrader for the specified branches. :param bzr_branch: the bzr branch to use. :param branch: The DB branch to use. """ return Upgrader(branch, self.getTargetDir(bzr_branch), logging.getLogger(), bzr_branch)
def test_invalid_stacking(self): """Upgrade tolerates branches stacked on different-format branches.""" self.useBzrBranches(direct_database=True) target, target_tree = self.create_branch_and_tree(format='1.6') trunk, trunk_tree = self.create_branch_and_tree(format='2a') force_stacked_on_url(target_tree.branch, trunk_tree.branch.base) Upgrader(target, self.getTargetDir(target_tree.branch), logging.getLogger())
def prepare(self): """Prepare to run the script.""" self.useBzrBranches(direct_database=True) branch, tree = self.create_branch_and_tree(format='pack-0.92') tree.commit('foo', committer='*****@*****.**') with person_logged_in(branch.owner): branch_changed(branch, tree.branch) target = self.useFixture(TempDir( rootdir=dirname(config.codehosting.mirrored_branches_root))).path upgrader = Upgrader(branch, target, logging.getLogger(), tree.branch) return upgrader