~bzr-pqm/bzr/bzr.dev

5557.1.7 by John Arbash Meinel
Merge in the bzr.dev 5582
1
# Copyright (C) 2006-2011 Canonical Ltd
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
2
#
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
7
#
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
12
#
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
4183.7.1 by Sabin Iacob
update FSF mailing address
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
16
17
"""Black box tests for the upgrade ui."""
5036.3.8 by Parth Malwankar
closed review comments from vila
18
import os
19
import stat
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
20
2323.6.1 by Martin Pool
(broken) Give a message when opening old workingtree formats suggesting upgrade
21
from bzrlib import (
22
    bzrdir,
5363.2.7 by Jelmer Vernooij
Fix tests.
23
    controldir,
5582.10.72 by Jelmer Vernooij
Some test fixes.
24
    lockable_files,
5684.1.2 by Jelmer Vernooij
Fix tests.
25
    ui,
6072.3.1 by Jelmer Vernooij
Format URLs in ``bzr upgrade`` before display.
26
    urlutils,
2323.6.1 by Martin Pool
(broken) Give a message when opening old workingtree formats suggesting upgrade
27
    )
28
from bzrlib.tests import (
5036.3.8 by Parth Malwankar
closed review comments from vila
29
    features,
2323.6.1 by Martin Pool
(broken) Give a message when opening old workingtree formats suggesting upgrade
30
    TestCaseWithTransport,
31
    )
1666.1.3 by Robert Collins
Fix and test upgrades from bzrdir 6 over SFTP.
32
from bzrlib.tests.test_sftp_transport import TestCaseWithSFTPServer
5757.1.2 by Jelmer Vernooij
Add separate file for knit pack repository formats.
33
from bzrlib.repofmt.knitpack_repo import RepositoryFormatKnitPack1
1534.5.9 by Robert Collins
Advise users running upgrade on a checkout to also run it on the branch.
34
35
5684.1.2 by Jelmer Vernooij
Fix tests.
36
class OldBzrDir(bzrdir.BzrDirMeta1):
37
    """An test bzr dir implementation"""
38
39
    def needs_format_conversion(self, format):
40
        return not isinstance(format, self.__class__)
41
42
5684.1.4 by Jelmer Vernooij
Use knits generally for testing
43
class ConvertOldTestToMeta(controldir.Converter):
5684.1.2 by Jelmer Vernooij
Fix tests.
44
    """A trivial converter, used for testing."""
45
46
    def convert(self, to_convert, pb):
47
        ui.ui_factory.note('starting upgrade from old test format to 2a')
48
        to_convert.control_transport.put_bytes(
49
            'branch-format',
50
            bzrdir.BzrDirMetaFormat1().get_format_string(),
51
            mode=to_convert._get_file_mode())
52
        return bzrdir.BzrDir.open(to_convert.user_url)
53
54
55
class OldBzrDirFormat(bzrdir.BzrDirMetaFormat1):
56
57
    _lock_class = lockable_files.TransportLock
58
59
    def get_converter(self, format=None):
60
        return ConvertOldTestToMeta()
61
62
    def get_format_string(self):
63
        return "Ancient Test Format"
64
65
    def _open(self, transport):
66
        return OldBzrDir(transport, self)
67
68
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
69
class TestWithUpgradableBranches(TestCaseWithTransport):
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
70
71
    def setUp(self):
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
72
        super(TestWithUpgradableBranches, self).setUp()
4608.1.1 by Martin Pool
Refactor blackbox.test_upgrade to do less work from setUp()
73
74
    def make_current_format_branch_and_checkout(self):
75
        current_tree = self.make_branch_and_tree('current_format_branch',
76
                                                 format='default')
77
        current_tree.branch.create_checkout(
78
            self.get_url('current_format_checkout'), lightweight=True)
79
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
80
    def test_readonly_url_error(self):
5684.1.4 by Jelmer Vernooij
Use knits generally for testing
81
        self.make_branch_and_tree("old_format_branch", format="knit")
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
82
        (out, err) = self.run_bzr(
5684.1.4 by Jelmer Vernooij
Use knits generally for testing
83
            ['upgrade', self.get_readonly_url("old_format_branch")], retcode=3)
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
84
        err_msg = 'Upgrade URL cannot work with readonly URLs.'
85
        self.assertEqualDiff('conversion error: %s\nbzr: ERROR: %s\n'
86
                             % (err_msg, err_msg),
87
                             err)
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
88
89
    def test_upgrade_up_to_date(self):
4608.1.1 by Martin Pool
Refactor blackbox.test_upgrade to do less work from setUp()
90
        self.make_current_format_branch_and_checkout()
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
91
        # when up to date we should get a message to that effect
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
92
        (out, err) = self.run_bzr('upgrade current_format_branch', retcode=3)
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
93
        err_msg = ('The branch format %s is already at the most recent format.'
94
                   % ('Meta directory format 1'))
95
        self.assertEqualDiff('conversion error: %s\nbzr: ERROR: %s\n'
96
                             % (err_msg, err_msg),
97
                             err)
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
98
99
    def test_upgrade_up_to_date_checkout_warns_branch_left_alone(self):
4608.1.1 by Martin Pool
Refactor blackbox.test_upgrade to do less work from setUp()
100
        self.make_current_format_branch_and_checkout()
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
101
        # when upgrading a checkout, the branch location and a suggestion
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
102
        # to upgrade it should be emitted even if the checkout is up to
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
103
        # date
6072.3.1 by Jelmer Vernooij
Format URLs in ``bzr upgrade`` before display.
104
        burl = self.get_transport('current_format_branch').local_abspath(".")
105
        curl = self.get_transport('current_format_checkout').local_abspath(".")
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
106
        (out, err) = self.run_bzr('upgrade current_format_checkout', retcode=3)
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
107
        self.assertEqual(
6072.3.1 by Jelmer Vernooij
Format URLs in ``bzr upgrade`` before display.
108
            'Upgrading branch %s/ ...\nThis is a checkout.'
109
            ' The branch (%s/) needs to be upgraded separately.\n'
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
110
            % (curl, burl),
111
            out)
112
        msg = 'The branch format %s is already at the most recent format.' % (
113
            'Meta directory format 1')
114
        self.assertEqualDiff('conversion error: %s\nbzr: ERROR: %s\n'
115
                             % (msg, msg),
116
                             err)
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
117
118
    def test_upgrade_checkout(self):
119
        # upgrading a checkout should work
120
        pass
121
122
    def test_upgrade_repository_scans_branches(self):
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
123
        # we should get individual upgrade notes for each branch even the
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
124
        # anonymous branch
125
        pass
126
5582.9.11 by Jelmer Vernooij
Remove some more redundancy.
127
    def test_upgrade_branch_in_repo(self):
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
128
        # upgrading a branch in a repo should warn about not upgrading the repo
129
        pass
1534.5.13 by Robert Collins
Correct buggy test.
130
5684.1.4 by Jelmer Vernooij
Use knits generally for testing
131
    def test_upgrade_control_dir(self):
132
        old_format = OldBzrDirFormat()
5712.3.17 by Jelmer Vernooij
more fixes.
133
        self.addCleanup(bzrdir.BzrProber.formats.remove,
134
            old_format.get_format_string())
135
        bzrdir.BzrProber.formats.register(old_format.get_format_string(),
136
            old_format)
5684.1.4 by Jelmer Vernooij
Use knits generally for testing
137
        self.addCleanup(controldir.ControlDirFormat._set_default_format,
138
                        controldir.ControlDirFormat.get_default_format())
139
140
        # setup an old format branch we can upgrade from.
141
        path = 'old_format_branch'
142
        self.make_branch_and_tree(path, format=old_format)
6072.3.1 by Jelmer Vernooij
Format URLs in ``bzr upgrade`` before display.
143
        transport = self.get_transport(path)
144
        url = transport.base
145
        display_url = transport.local_abspath('.')
1857.1.20 by Aaron Bentley
Strip out all the EnumOption stuff
146
        # check --format takes effect
5684.1.4 by Jelmer Vernooij
Use knits generally for testing
147
        controldir.ControlDirFormat._set_default_format(old_format)
5035.4.3 by Parth Malwankar
updated existing upgrade tests to work.
148
        backup_dir = 'backup.bzr.~1~'
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
149
        (out, err) = self.run_bzr(
5684.1.2 by Jelmer Vernooij
Fix tests.
150
            ['upgrade', '--format=2a', url])
6072.3.1 by Jelmer Vernooij
Format URLs in ``bzr upgrade`` before display.
151
        self.assertEqualDiff("""Upgrading branch %s/ ...
152
starting upgrade of %s/
153
making backup of %s/.bzr
154
  to %s/%s
5684.1.2 by Jelmer Vernooij
Fix tests.
155
starting upgrade from old test format to 2a
1534.5.13 by Robert Collins
Correct buggy test.
156
finished
6072.3.1 by Jelmer Vernooij
Format URLs in ``bzr upgrade`` before display.
157
""" % (display_url, display_url, display_url, display_url, backup_dir), out)
1534.5.13 by Robert Collins
Correct buggy test.
158
        self.assertEqualDiff("", err)
159
        self.assertTrue(isinstance(
5582.9.6 by Jelmer Vernooij
More cleanups, remove more dependencies on specific formats.
160
            bzrdir.BzrDir.open(self.get_url(path))._format,
1534.5.13 by Robert Collins
Correct buggy test.
161
            bzrdir.BzrDirMetaFormat1))
1556.1.4 by Robert Collins
Add a new format for what will become knit, and the surrounding logic to upgrade repositories within metadirs, and tests for the same.
162
163
    def test_upgrade_explicit_knit(self):
5684.1.2 by Jelmer Vernooij
Fix tests.
164
        # users can force an upgrade to knit format from a metadir pack 0.92
165
        # branch to a 2a branch.
5684.1.4 by Jelmer Vernooij
Use knits generally for testing
166
        self.make_branch_and_tree('branch', format='knit')
6072.3.1 by Jelmer Vernooij
Format URLs in ``bzr upgrade`` before display.
167
        transport = self.get_transport('branch')
168
        url = transport.base
169
        display_url = transport.local_abspath('.')
1857.1.20 by Aaron Bentley
Strip out all the EnumOption stuff
170
        # check --format takes effect
5035.4.3 by Parth Malwankar
updated existing upgrade tests to work.
171
        backup_dir = 'backup.bzr.~1~'
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
172
        (out, err) = self.run_bzr(
5684.1.4 by Jelmer Vernooij
Use knits generally for testing
173
            ['upgrade', '--format=pack-0.92', url])
6072.3.1 by Jelmer Vernooij
Format URLs in ``bzr upgrade`` before display.
174
        self.assertEqualDiff("""Upgrading branch %s/ ...
175
starting upgrade of %s/
176
making backup of %s/.bzr
177
  to %s/%s
1556.1.4 by Robert Collins
Add a new format for what will become knit, and the surrounding logic to upgrade repositories within metadirs, and tests for the same.
178
starting repository conversion
179
repository converted
180
finished
6072.3.1 by Jelmer Vernooij
Format URLs in ``bzr upgrade`` before display.
181
""" % (display_url, display_url, display_url, display_url, backup_dir),
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
182
                             out)
1556.1.4 by Robert Collins
Add a new format for what will become knit, and the surrounding logic to upgrade repositories within metadirs, and tests for the same.
183
        self.assertEqualDiff("", err)
5684.1.2 by Jelmer Vernooij
Fix tests.
184
        converted_dir = bzrdir.BzrDir.open(self.get_url('branch'))
1556.1.4 by Robert Collins
Add a new format for what will become knit, and the surrounding logic to upgrade repositories within metadirs, and tests for the same.
185
        self.assertTrue(isinstance(converted_dir._format,
186
                                   bzrdir.BzrDirMetaFormat1))
187
        self.assertTrue(isinstance(converted_dir.open_repository()._format,
5684.1.4 by Jelmer Vernooij
Use knits generally for testing
188
                                   RepositoryFormatKnitPack1))
1558.7.2 by Aaron Bentley
Upgrade works in repositories
189
190
    def test_upgrade_repo(self):
5684.1.2 by Jelmer Vernooij
Fix tests.
191
        self.run_bzr('init-repository --format=pack-0.92 repo')
192
        self.run_bzr('upgrade --format=2a repo')
1666.1.3 by Robert Collins
Fix and test upgrades from bzrdir 6 over SFTP.
193
4360.10.38 by Vincent Ladeuil
Use assertXXX instead of _assert_xxx helpers.
194
    def assertLegalOption(self, option_str):
4360.10.8 by Ian Clatworthy
add blackbox tests
195
        # Confirm that an option is legal. (Lower level tests are
196
        # expected to validate the actual functionality.)
197
        self.run_bzr('init --format=pack-0.92 branch-foo')
198
        self.run_bzr('upgrade --format=2a branch-foo %s' % (option_str,))
199
4360.10.38 by Vincent Ladeuil
Use assertXXX instead of _assert_xxx helpers.
200
    def assertBranchFormat(self, dir, format):
4360.10.18 by Ian Clatworthy
Add basic checks to blackbox tests (beyond legal usage) as requested by poolie
201
        branch = bzrdir.BzrDir.open_tree_or_branch(self.get_url(dir))[1]
202
        branch_format = branch._format
203
        meta_format = bzrdir.format_registry.make_bzrdir(format)
204
        expected_format = meta_format.get_branch_format()
205
        self.assertEqual(expected_format, branch_format)
206
4360.10.8 by Ian Clatworthy
add blackbox tests
207
    def test_upgrade_clean_supported(self):
4360.10.38 by Vincent Ladeuil
Use assertXXX instead of _assert_xxx helpers.
208
        self.assertLegalOption('--clean')
209
        self.assertBranchFormat('branch-foo', '2a')
4360.10.26 by Matthew Fuller
Test the [non-]existence of the current backup dir name.
210
        backup_bzr_dir = os.path.join("branch-foo", "backup.bzr.~1~")
4360.10.18 by Ian Clatworthy
Add basic checks to blackbox tests (beyond legal usage) as requested by poolie
211
        self.assertFalse(os.path.exists(backup_bzr_dir))
4360.10.8 by Ian Clatworthy
add blackbox tests
212
213
    def test_upgrade_dry_run_supported(self):
4360.10.38 by Vincent Ladeuil
Use assertXXX instead of _assert_xxx helpers.
214
        self.assertLegalOption('--dry-run')
215
        self.assertBranchFormat('branch-foo', 'pack-0.92')
4360.10.8 by Ian Clatworthy
add blackbox tests
216
4634.148.1 by Martin Pool
Backport fix for permissions of backup.bzr
217
    def test_upgrade_permission_check(self):
218
        """'backup.bzr' should retain permissions of .bzr. Bug #262450"""
5094.3.2 by Martin Pool
Fix up feature name
219
        self.requireFeature(features.posix_permissions_feature)
4634.148.1 by Martin Pool
Backport fix for permissions of backup.bzr
220
        old_perms = stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR
5036.3.10 by Parth Malwankar
merged in trunk. fixed blackbox.test_upgrade to use backup.bzr.~N~ convention.
221
        backup_dir = 'backup.bzr.~1~'
4634.148.1 by Martin Pool
Backport fix for permissions of backup.bzr
222
        self.run_bzr('init --format=1.6')
223
        os.chmod('.bzr', old_perms)
224
        self.run_bzr('upgrade')
225
        new_perms = os.stat(backup_dir).st_mode & 0777
226
        self.assertTrue(new_perms == old_perms)
227
5035.4.4 by Parth Malwankar
test updated to check for creation of backup.bzr.~2~ when backup.bzr.~1~ exists
228
    def test_upgrade_with_existing_backup_dir(self):
5684.1.4 by Jelmer Vernooij
Use knits generally for testing
229
        self.make_branch_and_tree("old_format_branch", format="knit")
230
        t = self.get_transport("old_format_branch")
5273.1.7 by Vincent Ladeuil
No more use of the get_transport imported *symbol*, all uses are through
231
        url = t.base
6072.3.1 by Jelmer Vernooij
Format URLs in ``bzr upgrade`` before display.
232
        display_url = t.local_abspath('.')
5035.4.4 by Parth Malwankar
test updated to check for creation of backup.bzr.~2~ when backup.bzr.~1~ exists
233
        backup_dir1 = 'backup.bzr.~1~'
234
        backup_dir2 = 'backup.bzr.~2~'
5035.4.6 by Parth Malwankar
added doc to test
235
        # explicitly create backup_dir1. bzr should create the .~2~ directory
236
        # as backup
5273.1.7 by Vincent Ladeuil
No more use of the get_transport imported *symbol*, all uses are through
237
        t.mkdir(backup_dir1)
5035.4.4 by Parth Malwankar
test updated to check for creation of backup.bzr.~2~ when backup.bzr.~1~ exists
238
        (out, err) = self.run_bzr(
5684.1.2 by Jelmer Vernooij
Fix tests.
239
            ['upgrade', '--format=2a', url])
6072.3.1 by Jelmer Vernooij
Format URLs in ``bzr upgrade`` before display.
240
        self.assertEqualDiff("""Upgrading branch %s/ ...
241
starting upgrade of %s/
242
making backup of %s/.bzr
243
  to %s/%s
5684.1.4 by Jelmer Vernooij
Use knits generally for testing
244
starting repository conversion
245
repository converted
5035.4.4 by Parth Malwankar
test updated to check for creation of backup.bzr.~2~ when backup.bzr.~1~ exists
246
finished
6072.3.1 by Jelmer Vernooij
Format URLs in ``bzr upgrade`` before display.
247
""" % (display_url, display_url, display_url, display_url, backup_dir2), out)
5035.4.4 by Parth Malwankar
test updated to check for creation of backup.bzr.~2~ when backup.bzr.~1~ exists
248
        self.assertEqualDiff("", err)
249
        self.assertTrue(isinstance(
5684.1.4 by Jelmer Vernooij
Use knits generally for testing
250
            bzrdir.BzrDir.open(self.get_url("old_format_branch"))._format,
5035.4.4 by Parth Malwankar
test updated to check for creation of backup.bzr.~2~ when backup.bzr.~1~ exists
251
            bzrdir.BzrDirMetaFormat1))
5273.1.7 by Vincent Ladeuil
No more use of the get_transport imported *symbol*, all uses are through
252
        self.assertTrue(t.has(backup_dir2))
5035.4.4 by Parth Malwankar
test updated to check for creation of backup.bzr.~2~ when backup.bzr.~1~ exists
253
5582.10.4 by Jelmer Vernooij
Fix a bunch of tests.
254
1666.1.3 by Robert Collins
Fix and test upgrades from bzrdir 6 over SFTP.
255
class SFTPTests(TestCaseWithSFTPServer):
256
    """Tests for upgrade over sftp."""
257
258
    def test_upgrade_url(self):
5684.1.2 by Jelmer Vernooij
Fix tests.
259
        self.run_bzr('init --format=pack-0.92')
5609.9.4 by Vincent Ladeuil
Use self.get_transport instead of transport.get_transport where possible.
260
        t = self.get_transport()
1666.1.3 by Robert Collins
Fix and test upgrades from bzrdir 6 over SFTP.
261
        url = t.base
6072.3.1 by Jelmer Vernooij
Format URLs in ``bzr upgrade`` before display.
262
        display_url = urlutils.unescape_for_display(url,
6072.3.2 by Jelmer Vernooij
Use utf8 as encoding for urls passed to note().
263
            'utf-8')
5684.1.2 by Jelmer Vernooij
Fix tests.
264
        out, err = self.run_bzr(['upgrade', '--format=2a', url])
6072.3.4 by Jelmer Vernooij
Merge ~ fixes.
265
        backup_dir = 'backup.bzr.~1~'
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
266
        self.assertEqualDiff("""Upgrading branch %s ...
267
starting upgrade of %s
3943.2.4 by Martin Pool
Move backup progress indicators from upgrade.py into backup_bzrdir, and tweak text
268
making backup of %s.bzr
5035.4.3 by Parth Malwankar
updated existing upgrade tests to work.
269
  to %s%s
1666.1.3 by Robert Collins
Fix and test upgrades from bzrdir 6 over SFTP.
270
starting repository conversion
271
repository converted
272
finished
6072.3.3 by Jelmer Vernooij
Merge bzr.dev.
273
""" % (display_url, display_url, display_url, display_url, backup_dir), out)
1666.1.3 by Robert Collins
Fix and test upgrades from bzrdir 6 over SFTP.
274
        self.assertEqual('', err)
2323.6.1 by Martin Pool
(broken) Give a message when opening old workingtree formats suggesting upgrade
275
276
4634.2.1 by Robert Collins
Fix regression in upgrade introduced with the change to upgrade in rev 4622.
277
class UpgradeRecommendedTests(TestCaseWithTransport):
2323.6.1 by Martin Pool
(broken) Give a message when opening old workingtree formats suggesting upgrade
278
279
    def test_recommend_upgrade_wt4(self):
280
        # using a deprecated format gives a warning
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
281
        self.run_bzr('init --knit a')
282
        out, err = self.run_bzr('status a')
2323.6.1 by Martin Pool
(broken) Give a message when opening old workingtree formats suggesting upgrade
283
        self.assertContainsRe(err, 'bzr upgrade .*[/\\\\]a')
2323.5.19 by Martin Pool
No upgrade recommendation on source when cloning
284
285
    def test_no_upgrade_recommendation_from_bzrdir(self):
286
        # we should only get a recommendation to upgrade when we're accessing
287
        # the actual workingtree, not when we only open a bzrdir that contains
288
        # an old workngtree
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
289
        self.run_bzr('init --knit a')
3123.5.22 by Aaron Bentley
Change failing test to use another command, since checkout now uses trees
290
        out, err = self.run_bzr('revno a')
2323.5.19 by Martin Pool
No upgrade recommendation on source when cloning
291
        if err.find('upgrade') > -1:
292
            self.fail("message shouldn't suggest upgrade:\n%s" % err)
4634.2.1 by Robert Collins
Fix regression in upgrade introduced with the change to upgrade in rev 4622.
293
294
    def test_upgrade_shared_repo(self):
295
        repo = self.make_repository('repo', format='2a', shared=True)
296
        branch = self.make_branch_and_tree('repo/branch', format="pack-0.92")
297
        self.get_transport('repo/branch/.bzr/repository').delete_tree('.')
298
        out, err = self.run_bzr(['upgrade'], working_dir='repo/branch')