~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/per_branch/test_bound_sftp.py

  • Committer: Vincent Ladeuil
  • Date: 2012-03-13 17:25:29 UTC
  • mfrom: (6499 +trunk)
  • mto: This revision was merged to the branch mainline in revision 6501.
  • Revision ID: v.ladeuil+lp@free.fr-20120313172529-i0suyjnepsor25i7
Merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
 
22
22
from bzrlib import (
23
23
    branch,
24
 
    bzrdir,
 
24
    controldir,
25
25
    errors,
26
26
    tests,
27
27
    )
39
39
 
40
40
    def create_branches(self):
41
41
        self.build_tree(['base/', 'base/a', 'base/b'])
42
 
        format = bzrdir.format_registry.make_bzrdir('knit')
 
42
        format = controldir.format_registry.make_bzrdir('knit')
43
43
        try:
44
 
            wt_base = bzrdir.BzrDir.create_standalone_workingtree(
 
44
            wt_base = controldir.ControlDir.create_standalone_workingtree(
45
45
                self.get_url('base'), format=format)
46
46
        except errors.NotLocalUrl:
47
47
            raise tests.TestSkipped('Not a local URL')
63
63
    def test_simple_binding(self):
64
64
        self.build_tree(['base/', 'base/a', 'base/b', 'child/'])
65
65
        try:
66
 
            wt_base = bzrdir.BzrDir.create_standalone_workingtree(
 
66
            wt_base = controldir.ControlDir.create_standalone_workingtree(
67
67
                self.get_url('base'))
68
68
        except errors.NotLocalUrl:
69
69
            raise tests.TestSkipped('Not a local URL')
76
76
        # manually make a branch we can bind, because the default format
77
77
        # may not be bindable-from, and we want to test the side effects etc
78
78
        # of bondage.
79
 
        format = bzrdir.format_registry.make_bzrdir('knit')
80
 
        b_child = bzrdir.BzrDir.create_branch_convenience(
 
79
        format = controldir.format_registry.make_bzrdir('knit')
 
80
        b_child = controldir.ControlDir.create_branch_convenience(
81
81
            'child', format=format)
82
82
        self.assertEqual(None, b_child.get_bound_location())
83
83
        self.assertEqual(None, b_child.get_master_branch())
103
103
    def test_bound_commit(self):
104
104
        b_base, wt_child = self.create_branches()
105
105
 
106
 
        open('child/a', 'wb').write('new contents\n')
 
106
        with open('child/a', 'wb') as f: f.write('new contents\n')
107
107
        wt_child.commit('modified a', rev_id='r@c-2')
108
108
 
109
109
        self.assertEqual(['r@b-1', 'r@c-2'], wt_child.branch.revision_history())
113
113
        # Make sure commit fails if out of date.
114
114
        b_base, wt_child = self.create_branches()
115
115
 
116
 
        open('base/a', 'wb').write('new base contents\n')
 
116
        with open('base/a', 'wb') as f: f.write('new base contents\n')
117
117
        b_base.bzrdir.open_workingtree().commit('base', rev_id='r@b-2')
118
118
 
119
 
        open('child/b', 'wb').write('new b child contents\n')
 
119
        with open('child/b', 'wb') as f: f.write('new b child contents\n')
120
120
        self.assertRaises(errors.BoundBranchOutOfDate,
121
121
                wt_child.commit, 'child', rev_id='r@c-2')
122
122
 
139
139
 
140
140
        wt_child2 = wt_child.branch.create_checkout('child2')
141
141
 
142
 
        open('child2/a', 'wb').write('new contents\n')
 
142
        with open('child2/a', 'wb') as f: f.write('new contents\n')
143
143
        self.assertRaises(errors.CommitToDoubleBoundBranch,
144
144
                wt_child2.commit, 'child2', rev_id='r@d-2')
145
145
 
146
146
    def test_unbinding(self):
147
 
        from bzrlib import transport
148
147
        b_base, wt_child = self.create_branches()
149
148
 
150
149
        # TestCaseWithSFTPServer only allows you to connect one time
153
152
        __unused_t = self.get_transport()
154
153
 
155
154
        wt_base = b_base.bzrdir.open_workingtree()
156
 
        open('base/a', 'wb').write('new base contents\n')
 
155
        with open('base/a', 'wb') as f: f.write('new base contents\n')
157
156
        wt_base.commit('base', rev_id='r@b-2')
158
157
 
159
 
        open('child/b', 'wb').write('new b child contents\n')
 
158
        with open('child/b', 'wb') as f: f.write('new b child contents\n')
160
159
        self.assertRaises(errors.BoundBranchOutOfDate,
161
160
                wt_child.commit, 'child', rev_id='r@c-2')
162
161
        self.assertEqual(['r@b-1'], wt_child.branch.revision_history())
181
180
 
182
181
        sftp_b_base.bind(sftp_b_newbase)
183
182
 
184
 
        open('child/a', 'wb').write('new contents\n')
 
183
        with open('child/a', 'wb') as f: f.write('new contents\n')
185
184
        self.assertRaises(errors.CommitToDoubleBoundBranch,
186
185
                wt_child.commit, 'failure', rev_id='r@c-2')
187
186
 
193
192
        b_base, wt_child = self.create_branches()
194
193
 
195
194
        wt_child.branch.unbind()
196
 
        open('child/a', 'ab').write('child contents\n')
 
195
        with open('child/a', 'ab') as f: f.write('child contents\n')
197
196
        wt_child_rev = wt_child.commit('child', rev_id='r@c-2')
198
197
 
199
198
        self.assertEqual(['r@b-1', 'r@c-2'], wt_child.branch.revision_history())
200
199
        self.assertEqual(['r@b-1'], b_base.revision_history())
201
200
 
202
 
        open('base/b', 'ab').write('base contents\n')
 
201
        with open('base/b', 'ab') as f: f.write('base contents\n')
203
202
        b_base.bzrdir.open_workingtree().commit('base', rev_id='r@b-2')
204
203
        self.assertEqual(['r@b-1', 'r@b-2'], b_base.revision_history())
205
204
 
225
224
 
226
225
        wt_child.branch.unbind()
227
226
 
228
 
        open('a', 'ab').write('base changes\n')
 
227
        with open('a', 'ab') as f: f.write('base changes\n')
229
228
        wt_base = b_base.bzrdir.open_workingtree()
230
229
        wt_base.commit('base', rev_id='r@b-2')
231
230
        self.assertEqual(['r@b-1', 'r@b-2'], b_base.revision_history())
288
287
 
289
288
        wt_other = wt_child.bzrdir.sprout('other').open_workingtree()
290
289
 
291
 
        open('other/c', 'wb').write('file c\n')
 
290
        with open('other/c', 'wb') as f: f.write('file c\n')
292
291
        wt_other.add('c')
293
292
        wt_other.commit('adding c', rev_id='r@d-2')
294
293
 
312
311
    def test_commit_fails(self):
313
312
        b_base, wt_child = self.create_branches()
314
313
 
315
 
        open('a', 'ab').write('child adds some text\n')
 
314
        with open('a', 'ab') as f: f.write('child adds some text\n')
316
315
 
317
316
        # this deletes the branch from memory
318
317
        del b_base