~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_upgrade.py

  • Committer: Danny van Heumen
  • Date: 2010-03-09 16:38:10 UTC
  • mto: (4634.139.5 2.0)
  • mto: This revision was merged to the branch mainline in revision 5160.
  • Revision ID: danny@dannyvanheumen.nl-20100309163810-ujn8hcx08f75nlf1
Refined test to make use of locking hooks and also validate if lock is truly a checkout-lock.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2005 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
31
31
    bzrdir,
32
32
    progress,
33
33
    repository,
34
 
    transport,
35
34
    workingtree,
36
35
    workingtree_4,
37
36
    )
38
37
import bzrlib.branch
39
38
from bzrlib.branch import Branch
40
39
from bzrlib.tests import TestCaseWithTransport
 
40
from bzrlib.transport import get_transport
41
41
from bzrlib.upgrade import upgrade
42
42
 
43
43
 
44
44
class TestUpgrade(TestCaseWithTransport):
45
45
 
 
46
    def test_build_tree(self):
 
47
        """Test tree-building test helper"""
 
48
        self.build_tree_contents(_upgrade1_template)
 
49
        self.failUnlessExists('foo')
 
50
        self.failUnlessExists('.bzr/README')
 
51
 
46
52
    def test_upgrade_simple(self):
47
53
        """Upgrade simple v0.0.4 format to latest format"""
48
54
        eq = self.assertEquals
73
79
        finally:
74
80
            rt.unlock()
75
81
        # check a backup was made:
76
 
        backup_dir = 'backup.bzr.~1~'
77
 
        t = transport.get_transport(b.base)
78
 
        t.stat(backup_dir)
79
 
        t.stat(backup_dir + '/README')
80
 
        t.stat(backup_dir + '/branch-format')
81
 
        t.stat(backup_dir + '/revision-history')
82
 
        t.stat(backup_dir + '/merged-patches')
83
 
        t.stat(backup_dir + '/pending-merged-patches')
84
 
        t.stat(backup_dir + '/pending-merges')
85
 
        t.stat(backup_dir + '/branch-name')
86
 
        t.stat(backup_dir + '/branch-lock')
87
 
        t.stat(backup_dir + '/inventory')
88
 
        t.stat(backup_dir + '/stat-cache')
89
 
        t.stat(backup_dir + '/text-store')
90
 
        t.stat(backup_dir + '/text-store/foo-20051004035611-1591048e9dc7c2d4.gz')
91
 
        t.stat(backup_dir + '/text-store/foo-20051004035756-4081373d897c3453.gz')
92
 
        t.stat(backup_dir + '/inventory-store/')
93
 
        t.stat(backup_dir + '/inventory-store/mbp@sourcefrog.net-20051004035611-176b16534b086b3c.gz')
94
 
        t.stat(backup_dir + '/inventory-store/mbp@sourcefrog.net-20051004035756-235f2b7dcdddd8dd.gz')
95
 
        t.stat(backup_dir + '/revision-store/')
96
 
        t.stat(backup_dir + '/revision-store/mbp@sourcefrog.net-20051004035611-176b16534b086b3c.gz')
97
 
        t.stat(backup_dir + '/revision-store/mbp@sourcefrog.net-20051004035756-235f2b7dcdddd8dd.gz')
 
82
        transport = get_transport(b.base)
 
83
        transport.stat('backup.bzr')
 
84
        transport.stat('backup.bzr/README')
 
85
        transport.stat('backup.bzr/branch-format')
 
86
        transport.stat('backup.bzr/revision-history')
 
87
        transport.stat('backup.bzr/merged-patches')
 
88
        transport.stat('backup.bzr/pending-merged-patches')
 
89
        transport.stat('backup.bzr/pending-merges')
 
90
        transport.stat('backup.bzr/branch-name')
 
91
        transport.stat('backup.bzr/branch-lock')
 
92
        transport.stat('backup.bzr/inventory')
 
93
        transport.stat('backup.bzr/stat-cache')
 
94
        transport.stat('backup.bzr/text-store')
 
95
        transport.stat('backup.bzr/text-store/foo-20051004035611-1591048e9dc7c2d4.gz')
 
96
        transport.stat('backup.bzr/text-store/foo-20051004035756-4081373d897c3453.gz')
 
97
        transport.stat('backup.bzr/inventory-store/')
 
98
        transport.stat('backup.bzr/inventory-store/mbp@sourcefrog.net-20051004035611-176b16534b086b3c.gz')
 
99
        transport.stat('backup.bzr/inventory-store/mbp@sourcefrog.net-20051004035756-235f2b7dcdddd8dd.gz')
 
100
        transport.stat('backup.bzr/revision-store/')
 
101
        transport.stat('backup.bzr/revision-store/mbp@sourcefrog.net-20051004035611-176b16534b086b3c.gz')
 
102
        transport.stat('backup.bzr/revision-store/mbp@sourcefrog.net-20051004035756-235f2b7dcdddd8dd.gz')
98
103
 
99
104
    def test_upgrade_with_ghosts(self):
100
105
        """Upgrade v0.0.4 tree containing ghost references.
147
152
        # such a branch to metadir must not setup a working tree.
148
153
        self.build_tree_contents(_upgrade1_template)
149
154
        upgrade('.', bzrdir.BzrDirFormat6())
150
 
        t = transport.get_transport('.')
151
 
        t.delete_multi(['.bzr/pending-merges', '.bzr/inventory'])
152
 
        self.assertFalse(t.has('.bzr/stat-cache'))
 
155
        transport = get_transport('.')
 
156
        transport.delete_multi(['.bzr/pending-merges', '.bzr/inventory'])
 
157
        self.assertFalse(transport.has('.bzr/stat-cache'))
153
158
        # XXX: upgrade fails if a backup.bzr is already present
154
159
        # -- David Allouche 2006-08-11
155
 
        t.delete_tree('backup.bzr.~1~')
 
160
        transport.delete_tree('backup.bzr')
156
161
        # At this point, we have a format6 branch without checkout files.
157
162
        upgrade('.', bzrdir.BzrDirMetaFormat1())
158
163
        # The upgrade should not have set up a working tree.
180
185
        branch.set_push_location('file:///IJ')
181
186
        target = bzrdir.format_registry.make_bzrdir('dirstate-with-subtree')
182
187
        converter = branch.bzrdir._format.get_converter(target)
183
 
        converter.convert(branch.bzrdir, None)
 
188
        converter.convert(branch.bzrdir, progress.DummyProgress())
184
189
        new_branch = _mod_branch.Branch.open(self.get_url('branch'))
185
190
        self.assertIs(new_branch.__class__, _mod_branch.BzrBranch6)
186
191
        self.assertEqual('CD', new_branch.last_revision())
192
197
 
193
198
        branch2 = self.make_branch('branch2', format='knit')
194
199
        converter = branch2.bzrdir._format.get_converter(target)
195
 
        converter.convert(branch2.bzrdir, None)
 
200
        converter.convert(branch2.bzrdir, progress.DummyProgress())
196
201
        branch2 = _mod_branch.Branch.open(self.get_url('branch'))
197
202
        self.assertIs(branch2.__class__, _mod_branch.BzrBranch6)
198
203
 
201
206
        target = bzrdir.format_registry.make_bzrdir('1.9')
202
207
        target.set_branch_format(_mod_branch.BzrBranchFormat8())
203
208
        converter = branch.bzrdir._format.get_converter(target)
204
 
        converter.convert(branch.bzrdir, None)
 
209
        converter.convert(branch.bzrdir, progress.DummyProgress())
205
210
        branch = _mod_branch.Branch.open(self.get_url('branch'))
206
211
        self.assertIs(branch.__class__, _mod_branch.BzrBranch8)
207
212
        self.assertEqual({}, branch._get_all_reference_info())
211
216
        tree = self.make_branch_and_tree('tree', format='knit')
212
217
        target = bzrdir.format_registry.make_bzrdir('dirstate')
213
218
        converter = tree.bzrdir._format.get_converter(target)
214
 
        converter.convert(tree.bzrdir, None)
 
219
        converter.convert(tree.bzrdir, progress.DummyProgress())
215
220
        new_tree = workingtree.WorkingTree.open('tree')
216
221
        self.assertIs(new_tree.__class__, workingtree_4.WorkingTree4)
217
222
        self.assertEqual('null:', new_tree.last_revision())
224
229
        tree.add(['file'], ['file-id'])
225
230
        target = bzrdir.format_registry.make_bzrdir('dirstate')
226
231
        converter = tree.bzrdir._format.get_converter(target)
227
 
        converter.convert(tree.bzrdir, None)
 
232
        converter.convert(tree.bzrdir, progress.DummyProgress())
228
233
        new_tree = workingtree.WorkingTree.open('tree')
229
234
        self.assertIs(new_tree.__class__, workingtree_4.WorkingTree4)
230
235
        self.assertEqual('null:', new_tree.last_revision())
235
240
        rev_id = tree.commit('first post')
236
241
        target = bzrdir.format_registry.make_bzrdir('dirstate')
237
242
        converter = tree.bzrdir._format.get_converter(target)
238
 
        converter.convert(tree.bzrdir, None)
 
243
        converter.convert(tree.bzrdir, progress.DummyProgress())
239
244
        new_tree = workingtree.WorkingTree.open('tree')
240
245
        self.assertIs(new_tree.__class__, workingtree_4.WorkingTree4)
241
246
        self.assertEqual(rev_id, new_tree.last_revision())
252
257
        tree.merge_from_branch(merge_tree.branch)
253
258
        target = bzrdir.format_registry.make_bzrdir('dirstate')
254
259
        converter = tree.bzrdir._format.get_converter(target)
255
 
        converter.convert(tree.bzrdir, None)
 
260
        converter.convert(tree.bzrdir, progress.DummyProgress())
256
261
        new_tree = workingtree.WorkingTree.open('tree')
257
262
        self.assertIs(new_tree.__class__, workingtree_4.WorkingTree4)
258
263
        self.assertEqual(rev_id2, new_tree.last_revision())