~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: v.ladeuil+lp at free
  • Date: 2007-05-18 18:20:31 UTC
  • mto: (2485.8.44 bzr.connection.sharing)
  • mto: This revision was merged to the branch mainline in revision 2646.
  • Revision ID: v.ladeuil+lp@free.fr-20070518182031-gbg2cgidv5l20x9p
Takes Robert comments into account.

* bzrlib/transport/ftp.py:
(FtpTransport.__init__): Write a better explanation.

* bzrlib/tests/test_init.py:
(InstrumentedTransport): Just make hooks a class attribute.
(InstrumentedTransport._get_FTP): Run hook directly in the for
loop.
(TransportHooks.run_hook, TransportHooks.uninstall_hook): Not
needed. The hooks should be cleaned up by the test itself.
(TestInit.setUp.cleanup): Resset to default hooks.

Show diffs side-by-side

added added

removed removed

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