~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Robert Collins
  • Date: 2007-07-04 08:08:13 UTC
  • mfrom: (2572 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2587.
  • Revision ID: robertc@robertcollins.net-20070704080813-wzebx0r88fvwj5rq
Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005 by 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
20
20
import os
21
21
from cStringIO import StringIO
22
22
 
 
23
from bzrlib import (
 
24
    bzrdir,
 
25
    )
23
26
from bzrlib.branch import Branch
24
27
from bzrlib.bzrdir import (BzrDir, BzrDirFormat, BzrDirMetaFormat1)
25
28
from bzrlib.osutils import getcwd
99
102
 
100
103
        self.run_bzr('unbind', retcode=3)
101
104
 
 
105
    def test_bind_branch6(self):
 
106
        branch1 = self.make_branch('branch1', format='dirstate-tags')
 
107
        os.chdir('branch1')
 
108
        error = self.run_bzr('bind', retcode=3)[1]
 
109
        self.assertContainsRe(error, 'no previous location known')
 
110
 
 
111
    def setup_rebind(self, format):
 
112
        branch1 = self.make_branch('branch1')
 
113
        branch2 = self.make_branch('branch2', format=format)
 
114
        branch2.bind(branch1)
 
115
        branch2.unbind()
 
116
 
 
117
    def test_rebind_branch6(self):
 
118
        self.setup_rebind('dirstate-tags')
 
119
        os.chdir('branch2')
 
120
        self.run_bzr('bind')
 
121
        b = Branch.open('.')
 
122
        self.assertContainsRe(b.get_bound_location(), '\/branch1\/$')
 
123
 
 
124
    def test_rebind_branch5(self):
 
125
        self.setup_rebind('knit')
 
126
        os.chdir('branch2')
 
127
        error = self.run_bzr('bind', retcode=3)[1]
 
128
        self.assertContainsRe(error, 'old locations')
 
129
 
102
130
    def init_meta_branch(self, path):
103
 
        old_format = BzrDirFormat.get_default_format()
104
 
        BzrDirFormat.set_default_format(BzrDirMetaFormat1())
105
 
        try:
106
 
            return BzrDir.create_branch_convenience(
107
 
                path, BzrDirMetaFormat1())
108
 
        finally:
109
 
            BzrDirFormat.set_default_format(old_format)
 
131
        format = bzrdir.format_registry.make_bzrdir('default')
 
132
        return BzrDir.create_branch_convenience(path, format=format)
110
133
 
111
134
    def test_bound_commit(self):
112
135
        bzr = self.run_bzr
351
374
 
352
375
        bzr('cat-revision', new_rev_id)
353
376
 
354
 
    def test_pull_overwrite_fails(self):
 
377
    def test_pull_overwrite(self):
 
378
        # XXX: This test should be moved to branch-implemenations/test_pull
355
379
        bzr = self.run_bzr
356
380
        self.create_branches()
357
381
 
375
399
        self.check_revno(2)
376
400
        self.check_revno(2, '../base')
377
401
 
378
 
        # It might be possible that we want pull --overwrite to
379
 
        # actually succeed.
380
 
        # If we want it, just change this test to make sure that 
381
 
        # both base and child are updated properly
382
 
        bzr('pull', '--overwrite', '../other', retcode=3)
383
 
 
384
 
        # It should fail without changing the local revision
385
 
        self.check_revno(2)
386
 
        self.check_revno(2, '../base')
387
 
 
388
 
    # TODO: jam 20051230 Test that commit & pull fail when the branch we 
389
 
    #       are bound to is not available
390
 
 
391
 
 
 
402
        bzr('pull', '--overwrite', '../other')
 
403
 
 
404
        # both the local and master should have been updated.
 
405
        self.check_revno(4)
 
406
        self.check_revno(4, '../base')