~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Jelmer Vernooij
  • Date: 2012-02-23 17:17:30 UTC
  • mto: This revision was merged to the branch mainline in revision 6482.
  • Revision ID: jelmer@samba.org-20120223171730-amkrezo4lsg750kz
rmbranch now refuses removing active branches.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
 
29
29
class TestRemoveBranch(TestCaseWithTransport):
30
30
 
31
 
    def example_branch(self, path='.', format=None):
 
31
    def example_tree(self, path='.', format=None):
32
32
        tree = self.make_branch_and_tree(path, format=format)
33
33
        self.build_tree_contents([(path + '/hello', 'foo')])
34
34
        tree.add('hello')
40
40
 
41
41
    def test_remove_local(self):
42
42
        # Remove a local branch.
43
 
        self.example_branch('a')
44
 
        self.run_bzr('rmbranch a')
 
43
        tree = self.example_tree('a')
 
44
        self.run_bzr_error(['Use --force to remove active branch.\n'],
 
45
            'rmbranch a')
 
46
        self.run_bzr('rmbranch --force a')
45
47
        dir = bzrdir.BzrDir.open('a')
46
48
        self.assertFalse(dir.has_branch())
47
49
        self.assertPathExists('a/hello')
48
50
        self.assertPathExists('a/goodbye')
49
51
 
50
52
    def test_no_branch(self):
51
 
        # No branch in the current directory. 
 
53
        # No branch in the current directory.
52
54
        self.make_repository('a')
53
55
        self.run_bzr_error(['Not a branch'],
54
56
            'rmbranch a')
55
57
 
 
58
    def test_no_tree(self):
 
59
        # removing the active branch is possible if there is no tree
 
60
        tree = self.example_tree('a')
 
61
        tree.bzrdir.destroy_workingtree()
 
62
        self.run_bzr('rmbranch', working_dir='a')
 
63
        dir = bzrdir.BzrDir.open('a')
 
64
        self.assertFalse(dir.has_branch())
 
65
 
56
66
    def test_no_arg(self):
57
67
        # location argument defaults to current directory
58
 
        self.example_branch('a')
59
 
        self.run_bzr('rmbranch', working_dir='a')
 
68
        self.example_tree('a')
 
69
        self.run_bzr_error(['Use --force to remove active branch.\n'],
 
70
            'rmbranch a')
 
71
        self.run_bzr('rmbranch --force', working_dir='a')
60
72
        dir = bzrdir.BzrDir.open('a')
61
73
        self.assertFalse(dir.has_branch())
62
74
 
63
75
    def test_remove_colo(self):
64
76
        # Remove a colocated branch.
65
 
        tree = self.example_branch('a')
 
77
        tree = self.example_tree('a')
66
78
        tree.bzrdir.create_branch(name="otherbranch")
67
79
        self.assertTrue(tree.bzrdir.has_branch('otherbranch'))
68
80
        self.run_bzr('rmbranch %s,branch=otherbranch' % tree.bzrdir.user_url)
72
84
 
73
85
    def test_remove_colo_directory(self):
74
86
        # Remove a colocated branch.
75
 
        tree = self.example_branch('a')
 
87
        tree = self.example_tree('a')
76
88
        tree.bzrdir.create_branch(name="otherbranch")
77
89
        self.assertTrue(tree.bzrdir.has_branch('otherbranch'))
78
90
        self.run_bzr('rmbranch otherbranch -d %s' % tree.bzrdir.user_url)
85
97
        dir = self.make_repository('a').bzrdir
86
98
        branch = dir.create_branch('otherbranch')
87
99
        branch.create_checkout('a')
88
 
        self.run_bzr_error(['Use --force to remove active branch.'],
 
100
        self.run_bzr_error(['Use --force to remove active branch.\n'],
89
101
            'rmbranch otherbranch -d %s' % branch.bzrdir.user_url)
90
102
        self.assertTrue(dir.has_branch('otherbranch'))
91
103
        self.run_bzr('rmbranch --force otherbranch -d %s' % branch.bzrdir.user_url)
92
104
        self.assertFalse(dir.has_branch('otherbranch'))
93
 
        self.assertTrue(dir.has_branch())
94
105
 
95
106
 
96
107
class TestSmartServerRemoveBranch(TestCaseWithTransport):