/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_commit.py

  • Committer: Daniel Watkins
  • Date: 2007-08-21 17:18:38 UTC
  • mfrom: (2664.13.3 fix-blackbox-tests)
  • mto: This revision was merged to the branch mainline in revision 2794.
  • Revision ID: d.m.watkins@warwick.ac.uk-20070821171838-suz1gujem6r81m4x
Merged original changes and tweaked cat.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
    )
27
27
from bzrlib.branch import Branch
28
28
from bzrlib.bzrdir import BzrDir
 
29
from bzrlib.conflicts import resolve
29
30
from bzrlib.errors import BzrCommandError
30
31
from bzrlib.tests.blackbox import ExternalBase
31
32
from bzrlib.workingtree import WorkingTree
36
37
    def test_05_empty_commit(self):
37
38
        """Commit of tree with no versioned files should fail"""
38
39
        # If forced, it should succeed, but this is not tested here.
39
 
        self.run_bzr("init")
 
40
        self.make_branch_and_tree('.')
40
41
        self.build_tree(['hello.txt'])
41
42
        out,err = self.run_bzr('commit -m empty', retcode=3)
42
43
        self.assertEqual('', out)
45
46
 
46
47
    def test_commit_success(self):
47
48
        """Successful commit should not leave behind a bzr-commit-* file"""
48
 
        self.run_bzr("init")
 
49
        self.make_branch_and_tree('.')
49
50
        self.run_bzr('commit --unchanged -m message')
50
51
        self.assertEqual('', self.run_bzr('unknowns')[0])
51
52
 
55
56
 
56
57
    def test_commit_with_path(self):
57
58
        """Commit tree with path of root specified"""
58
 
        self.run_bzr('init a')
 
59
        a_tree = self.make_branch_and_tree('a')
59
60
        self.build_tree(['a/a_file'])
60
 
        self.run_bzr('add a/a_file')
 
61
        a_tree.add('a_file')
61
62
        self.run_bzr(['commit', '-m', 'first commit', 'a'])
62
63
 
63
 
        self.run_bzr('branch a b')
 
64
        b_tree = a_tree.bzrdir.sprout('b').open_workingtree()
64
65
        self.build_tree_contents([('b/a_file', 'changes in b')])
65
66
        self.run_bzr(['commit', '-m', 'first commit in b', 'b'])
66
67
 
67
68
        self.build_tree_contents([('a/a_file', 'new contents')])
68
69
        self.run_bzr(['commit', '-m', 'change in a', 'a'])
69
70
 
70
 
        os.chdir('b')
71
 
        self.run_bzr('merge ../a', retcode=1) # will conflict
72
 
        os.chdir('..')
 
71
        b_tree.merge_from_branch(a_tree.branch)
73
72
        self.run_bzr('resolved b/a_file')
74
73
        self.run_bzr(['commit', '-m', 'merge into b', 'b'])
75
74
 
76
75
 
77
76
    def test_10_verbose_commit(self):
78
77
        """Add one file and examine verbose commit output"""
79
 
        self.run_bzr("init")
 
78
        tree = self.make_branch_and_tree('.')
80
79
        self.build_tree(['hello.txt'])
81
 
        self.run_bzr("add hello.txt")
 
80
        tree.add("hello.txt")
82
81
        out,err = self.run_bzr('commit -m added')
83
82
        self.assertEqual('', out)
84
83
        self.assertEqual('added hello.txt\n'
141
140
 
142
141
    def test_verbose_commit_with_unchanged(self):
143
142
        """Unchanged files should not be listed by default in verbose output"""
144
 
        self.run_bzr("init")
 
143
        tree = self.make_branch_and_tree('.')
145
144
        self.build_tree(['hello.txt', 'unchanged.txt'])
146
 
        self.run_bzr('add unchanged.txt')
 
145
        tree.add('unchanged.txt')
147
146
        self.run_bzr('commit -m unchanged unchanged.txt')
148
 
        self.run_bzr("add hello.txt")
 
147
        tree.add("hello.txt")
149
148
        out,err = self.run_bzr('commit -m added')
150
149
        self.assertEqual('', out)
151
150
        self.assertEqual('added hello.txt\n'
219
218
            err)
220
219
 
221
220
    def test_empty_commit_message(self):
222
 
        self.run_bzr("init")
223
 
        file('foo.c', 'wt').write('int main() {}')
224
 
        self.run_bzr('add foo.c')
 
221
        tree = self.make_branch_and_tree('.')
 
222
        self.build_tree_contents([('foo.c', 'int main() {}')])
 
223
        tree.add('foo.c')
225
224
        self.run_bzr('commit -m ""', retcode=3)
226
225
 
227
226
    def test_other_branch_commit(self):
228
227
        # this branch is to ensure consistent behaviour, whether we're run
229
228
        # inside a branch, or not.
230
 
        os.mkdir('empty_branch')
231
 
        os.chdir('empty_branch')
232
 
        self.run_bzr('init')
233
 
        os.mkdir('branch')
234
 
        os.chdir('branch')
235
 
        self.run_bzr('init')
236
 
        file('foo.c', 'wt').write('int main() {}')
237
 
        file('bar.c', 'wt').write('int main() {}')
238
 
        os.chdir('..')
239
 
        self.run_bzr('add branch/foo.c')
240
 
        self.run_bzr('add branch')
 
229
        outer_tree = self.make_branch_and_tree('.')
 
230
        inner_tree = self.make_branch_and_tree('branch')
 
231
        self.build_tree_contents([
 
232
            ('branch/foo.c', 'int main() {}'),
 
233
            ('branch/bar.c', 'int main() {}')])
 
234
        inner_tree.add('foo.c')
 
235
        inner_tree.add('bar.c')
241
236
        # can't commit files in different trees; sane error
242
237
        self.run_bzr('commit -m newstuff branch/foo.c .', retcode=3)
243
238
        self.run_bzr('commit -m newstuff branch/foo.c')
247
242
    def test_out_of_date_tree_commit(self):
248
243
        # check we get an error code and a clear message committing with an out
249
244
        # of date checkout
250
 
        self.make_branch_and_tree('branch')
 
245
        tree = self.make_branch_and_tree('branch')
251
246
        # make a checkout
252
 
        self.run_bzr('checkout --lightweight branch checkout')
 
247
        checkout = tree.branch.create_checkout('checkout', lightweight=True)
253
248
        # commit to the original branch to make the checkout out of date
254
 
        self.run_bzr('commit --unchanged -m message branch')
 
249
        tree.commit('message branch', allow_pointless=True)
255
250
        # now commit to the checkout should emit
256
251
        # ERROR: Out of date with the branch, 'bzr update' is suggested
257
252
        output = self.run_bzr('commit --unchanged -m checkout_message '
275
270
        # past. This is a user story reported to fail in bug #43959 where 
276
271
        # a merge done in a checkout (using the update command) failed to
277
272
        # commit correctly.
278
 
        self.run_bzr('init trunk')
 
273
        trunk = self.make_branch_and_tree('trunk')
279
274
 
280
 
        self.run_bzr('checkout trunk u1')
 
275
        u1 = trunk.branch.create_checkout('u1')
281
276
        self.build_tree_contents([('u1/hosts', 'initial contents')])
282
 
        self.run_bzr('add u1/hosts')
 
277
        u1.add('hosts')
283
278
        self.run_bzr('commit -m add-hosts u1')
284
279
 
285
 
        self.run_bzr('checkout trunk u2')
 
280
        u2 = trunk.branch.create_checkout('u2')
286
281
        self.build_tree_contents([('u2/hosts', 'altered in u2')])
287
282
        self.run_bzr('commit -m checkin-from-u2 u2')
288
283