1
# Copyright (C) 2006 by Canonical Ltd
2
# Authors: Robert Collins <robert.collins@canonical.com>
3
# -*- coding: utf-8 -*-
5
# This program is free software; you can redistribute it and/or modify
6
# it under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 2 of the License, or
8
# (at your option) any later version.
10
# This program is distributed in the hope that it will be useful,
11
# but WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
# GNU General Public License for more details.
15
# You should have received a copy of the GNU General Public License
16
# along with this program; if not, write to the Free Software
17
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
"""Black box tests for the upgrade ui."""
23
import bzrlib.bzrdir as bzrdir
24
from bzrlib.tests import TestCaseWithTransport
25
from bzrlib.transport import get_transport
28
class TestWithUpgradableBranches(TestCaseWithTransport):
31
super(TestWithUpgradableBranches, self).setUp()
32
self.old_format = bzrdir.BzrDirFormat.get_default_format()
33
self.addCleanup(self.restoreDefaultFormat)
34
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
35
# FIXME RBC 20060120 we should be able to do this via ui calls only.
36
# setup a format 5 branch we can upgrade from.
37
t = get_transport(self.get_url())
38
t.mkdir('format_5_branch')
39
bzrdir.BzrDirFormat5().initialize(self.get_url('format_5_branch'))
40
bzrdir.BzrDir.create_standalone_workingtree('current_format_branch')
42
def restoreDefaultFormat(self):
43
bzrdir.BzrDirFormat.set_default_format(self.old_format)
45
def test_readonly_url_error(self):
46
(out, err) = self.run_bzr_captured(
47
['upgrade', self.get_readonly_url('format_5_branch')], 3)
48
self.assertEqual(out, "")
49
self.assertEqual(err, "bzr: ERROR: Upgrade URL cannot work with readonly URL's.\n")
51
def test_upgrade_up_to_date(self):
52
# when up to date we should get a message to that effect
53
(out, err) = self.run_bzr_captured(
54
['upgrade', 'current_format_branch'], 3)
55
self.assertEqual("", out)
56
self.assertEqualDiff("Tree %s is already up to date.\n", err)
58
def test_upgrade_up_to_date_checkout_warns_branch_left_alone(self):
59
# when upgrading a checkout, the branch location and a suggestion
60
# to upgrade it should be emitted even if the checkout is up to
64
def test_upgrade_checkout(self):
65
# upgrading a checkout should work
68
def test_upgrade_repository_scans_branches(self):
69
# we should get individual upgrade notes for each branch even the
73
def test_ugrade_branch_in_repo(self):
74
# upgrading a branch in a repo should warn about not upgrading the repo