~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Aaron Bentley
  • Date: 2007-02-06 14:52:16 UTC
  • mfrom: (2266 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2268.
  • Revision ID: abentley@panoramicfeedback.com-20070206145216-fcpi8o3ufvuzwbp9
Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
import os
22
22
 
23
23
from bzrlib import branch, bzrdir
 
24
from bzrlib.tests import TestSkipped
24
25
from bzrlib.tests.blackbox import ExternalBase
25
26
from bzrlib.workingtree import WorkingTree
26
27
 
28
29
class TestUpdate(ExternalBase):
29
30
 
30
31
    def test_update_standalone_trivial(self):
31
 
        self.make_branch_and_tree('.')
32
 
        out, err = self.run_bzr('update')
 
32
        self.runbzr("init")
 
33
        out, err = self.runbzr('update')
33
34
        self.assertEqual('Tree is up to date at revision 0.\n', err)
34
35
        self.assertEqual('', out)
35
36
 
36
37
    def test_update_standalone_trivial_with_alias_up(self):
37
 
        self.make_branch_and_tree('.')
38
 
        out, err = self.run_bzr('up')
 
38
        self.runbzr("init")
 
39
        out, err = self.runbzr('up')
39
40
        self.assertEqual('Tree is up to date at revision 0.\n', err)
40
41
        self.assertEqual('', out)
41
42
 
42
43
    def test_update_up_to_date_light_checkout(self):
43
44
        self.make_branch_and_tree('branch')
44
 
        self.run_bzr('checkout --lightweight branch checkout')
45
 
        out, err = self.run_bzr('update checkout')
 
45
        self.runbzr('checkout --lightweight branch checkout')
 
46
        out, err = self.runbzr('update checkout')
46
47
        self.assertEqual('Tree is up to date at revision 0.\n', err)
47
48
        self.assertEqual('', out)
48
49
 
49
50
    def test_update_up_to_date_checkout(self):
50
51
        self.make_branch_and_tree('branch')
51
 
        self.run_bzr('checkout branch checkout')
52
 
        out, err = self.run_bzr('update checkout')
 
52
        self.run_bzr('checkout', 'branch', 'checkout')
 
53
        out, err = self.run_bzr('update', 'checkout')
53
54
        self.assertEqual('Tree is up to date at revision 0.\n', err)
54
55
        self.assertEqual('', out)
55
56
 
58
59
        # because it currently uses the branch last-revision marker.
59
60
        self.make_branch_and_tree('branch')
60
61
        # make a checkout
61
 
        self.run_bzr('checkout --lightweight branch checkout')
 
62
        self.runbzr('checkout --lightweight branch checkout')
62
63
        self.build_tree(['checkout/file'])
63
 
        self.run_bzr('add checkout/file')
64
 
        self.run_bzr('commit -m add-file checkout')
 
64
        self.runbzr('add checkout/file')
 
65
        self.runbzr('commit -m add-file checkout')
65
66
        # now branch should be out of date
66
 
        out,err = self.run_bzr('update branch')
 
67
        out,err = self.runbzr('update branch')
67
68
        self.assertEqual('', out)
68
 
        self.assertContainsRe(err, '\+N  file')
69
 
        self.assertEndsWith(err, 'All changes applied successfully.\n'
70
 
                         'Updated to revision 1.\n')
 
69
        self.assertEqual('All changes applied successfully.\n'
 
70
                         'Updated to revision 1.\n', err)
71
71
        self.failUnlessExists('branch/file')
72
72
 
73
73
    def test_update_out_of_date_light_checkout(self):
74
74
        self.make_branch_and_tree('branch')
75
75
        # make two checkouts
76
 
        self.run_bzr('checkout --lightweight branch checkout')
77
 
        self.run_bzr('checkout --lightweight branch checkout2')
 
76
        self.runbzr('checkout --lightweight branch checkout')
 
77
        self.runbzr('checkout --lightweight branch checkout2')
78
78
        self.build_tree(['checkout/file'])
79
 
        self.run_bzr('add checkout/file')
80
 
        self.run_bzr('commit -m add-file checkout')
 
79
        self.runbzr('add checkout/file')
 
80
        self.runbzr('commit -m add-file checkout')
81
81
        # now checkout2 should be out of date
82
 
        out,err = self.run_bzr('update checkout2')
83
 
        self.assertContainsRe(err, '\+N  file')
84
 
        self.assertEndsWith(err, 'All changes applied successfully.\n'
85
 
                         'Updated to revision 1.\n')
 
82
        out,err = self.runbzr('update checkout2')
 
83
        self.assertEqual('All changes applied successfully.\n'
 
84
                         'Updated to revision 1.\n',
 
85
                         err)
86
86
        self.assertEqual('', out)
87
87
 
88
88
    def test_update_conflicts_returns_2(self):
89
89
        self.make_branch_and_tree('branch')
90
90
        # make two checkouts
91
 
        self.run_bzr('checkout --lightweight branch checkout')
 
91
        self.runbzr('checkout --lightweight branch checkout')
92
92
        self.build_tree(['checkout/file'])
93
 
        self.run_bzr('add checkout/file')
94
 
        self.run_bzr('commit -m add-file checkout')
95
 
        self.run_bzr('checkout --lightweight branch checkout2')
 
93
        self.runbzr('add checkout/file')
 
94
        self.runbzr('commit -m add-file checkout')
 
95
        self.runbzr('checkout --lightweight branch checkout2')
96
96
        # now alter file in checkout
97
97
        a_file = file('checkout/file', 'wt')
98
98
        a_file.write('Foo')
99
99
        a_file.close()
100
 
        self.run_bzr('commit -m checnge-file checkout')
 
100
        self.runbzr('commit -m checnge-file checkout')
101
101
        # now checkout2 should be out of date
102
102
        # make a local change to file
103
103
        a_file = file('checkout2/file', 'wt')
104
104
        a_file.write('Bar')
105
105
        a_file.close()
106
 
        out,err = self.run_bzr('update checkout2', retcode=1)
107
 
        self.assertContainsRe(err, 'M  file')
 
106
        out,err = self.runbzr('update checkout2', retcode=1)
108
107
        self.assertEqual(['1 conflicts encountered.',
109
108
                          'Updated to revision 2.'],
110
 
                         err.split('\n')[-3:-1])
 
109
                         err.split('\n')[1:3])
111
110
        self.assertContainsRe(err, 'Text conflict in file\n')
112
111
        self.assertEqual('', out)
113
112
 
116
115
        # branch with local commits.
117
116
        master = self.make_branch_and_tree('master')
118
117
        # make a bound branch
119
 
        self.run_bzr('checkout master child')
 
118
        self.run_bzr('checkout', 'master', 'child')
120
119
        # get an object form of child
121
120
        child = WorkingTree.open('child')
122
121
        # check that out
123
 
        self.run_bzr('checkout --lightweight child checkout')
 
122
        self.run_bzr('checkout', '--lightweight', 'child', 'checkout')
124
123
        # get an object form of the checkout to manipulate
125
124
        wt = WorkingTree.open('checkout')
126
125
        # change master
143
142
 
144
143
        # now, update checkout ->
145
144
        # get all three files and a pending merge.
146
 
        out, err = self.run_bzr('update checkout')
 
145
        out, err = self.run_bzr('update', 'checkout')
147
146
        self.assertEqual('', out)
148
 
        self.assertContainsRe(err, '\+N  file')
149
 
        self.assertContainsRe(err, '\+N  file_b')
150
147
        self.assertContainsRe(err, 'Updated to revision 1.\n'
151
148
                                   'Your local commits will now show as'
152
149
                                   ' pending merges')
183
180
 
184
181
        # Merge the other branch into checkout
185
182
        os.chdir('checkout1')
186
 
        self.run_bzr('merge ../other')
 
183
        self.run_bzr('merge', '../other')
187
184
 
188
185
        self.assertEqual(['o2'], checkout1.get_parent_ids()[1:])
189
186
 
190
187
        # At this point, 'commit' should fail, because we are out of date
191
188
        self.run_bzr_error(["please run 'bzr update'"],
192
 
                           'commit -m merged')
 
189
                           'commit', '-m', 'merged')
193
190
 
194
191
        # This should not report about local commits being pending
195
192
        # merges, because they were real merges
196
193
        out, err = self.run_bzr('update')
197
194
        self.assertEqual('', out)
198
 
        self.assertEndsWith(err, 'All changes applied successfully.\n'
199
 
                         'Updated to revision 2.\n')
200
 
        self.assertContainsRe(err, r'\+N  file3')
 
195
        self.assertEqual('All changes applied successfully.\n'
 
196
                         'Updated to revision 2.\n', err)
 
197
 
201
198
        # The pending merges should still be there
202
199
        self.assertEqual(['o2'], checkout1.get_parent_ids()[1:])
203
200
 
205
202
        """Update a light checkout of a readonly branch"""
206
203
        tree = self.make_branch_and_tree('branch')
207
204
        readonly_branch = branch.Branch.open(self.get_readonly_url('branch'))
208
 
        checkout = readonly_branch.create_checkout('checkout',
 
205
        checkout = readonly_branch.create_checkout('checkout', 
209
206
                                                   lightweight=True)
210
207
        tree.commit('empty commit')
211
 
        self.run_bzr('update checkout')
 
208
        self.runbzr(['update', 'checkout'])