~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

(vila) Fix bzrlib.tests.test_gpg.TestVerify.test_verify_revoked_signature
 with recent versions of gpg. (Vincent Ladeuil)

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""Tests for lock-breaking user interface"""
18
18
 
19
 
import os
20
 
 
21
 
import bzrlib
22
19
from bzrlib import (
23
20
    branch,
24
 
    bzrdir,
25
21
    config,
 
22
    controldir,
26
23
    errors,
27
 
    lockdir,
28
24
    osutils,
29
25
    tests,
30
26
    )
 
27
from bzrlib.tests.matchers import ContainsNoVfsCalls
 
28
from bzrlib.tests.script import (
 
29
    run_script,
 
30
    )
31
31
 
32
32
 
33
33
class TestBreakLock(tests.TestCaseWithTransport):
54
54
             'repo/',
55
55
             'repo/branch/',
56
56
             'checkout/'])
57
 
        bzrdir.BzrDir.create('master-repo').create_repository()
58
 
        self.master_branch = bzrdir.BzrDir.create_branch_convenience(
 
57
        controldir.ControlDir.create('master-repo').create_repository()
 
58
        self.master_branch = controldir.ControlDir.create_branch_convenience(
59
59
            'master-repo/master-branch')
60
 
        bzrdir.BzrDir.create('repo').create_repository()
61
 
        local_branch = bzrdir.BzrDir.create_branch_convenience('repo/branch')
 
60
        controldir.ControlDir.create('repo').create_repository()
 
61
        local_branch = controldir.ControlDir.create_branch_convenience('repo/branch')
62
62
        local_branch.bind(self.master_branch)
63
 
        checkoutdir = bzrdir.BzrDir.create('checkout')
64
 
        branch.BranchReferenceFormat().initialize(
65
 
            checkoutdir, target_branch=local_branch)
 
63
        checkoutdir = controldir.ControlDir.create('checkout')
 
64
        checkoutdir.set_branch_reference(local_branch)
66
65
        self.wt = checkoutdir.create_workingtree()
67
66
 
68
67
    def test_break_lock_help(self):
70
69
        # shouldn't fail and should not produce error output
71
70
        self.assertEqual('', err)
72
71
 
 
72
    def test_break_lock_no_interaction(self):
 
73
        """With --force, the user isn't asked for confirmation"""
 
74
        self.master_branch.lock_write()
 
75
        run_script(self, """
 
76
        $ bzr break-lock --force master-repo/master-branch
 
77
        Broke lock ...master-branch/.bzr/...
 
78
        """)
 
79
        # lock should now be dead
 
80
        self.assertRaises(errors.LockBroken, self.master_branch.unlock)
 
81
 
73
82
    def test_break_lock_everything_locked(self):
74
83
        ### if everything is locked, we should be able to unlock the lot.
75
84
        # however, we dont test breaking the working tree because we
95
104
        self.assertRaises(errors.LockBroken, self.master_branch.unlock)
96
105
 
97
106
 
98
 
class TestBreakLockOldBranch(tests.TestCaseWithTransport):
99
 
 
100
 
    def test_break_lock_format_5_bzrdir(self):
101
 
        # break lock on a format 5 bzrdir should just return
102
 
        self.make_branch_and_tree('foo', format=bzrdir.BzrDirFormat5())
103
 
        out, err = self.run_bzr('break-lock foo')
104
 
        self.assertEqual('', out)
105
 
        self.assertEqual('', err)
106
 
 
107
107
class TestConfigBreakLock(tests.TestCaseWithTransport):
108
108
 
109
109
    def setUp(self):
124
124
                     stdin="y\n")
125
125
        self.assertRaises(errors.LockBroken, self.config.unlock)
126
126
 
 
127
 
 
128
class TestSmartServerBreakLock(tests.TestCaseWithTransport):
 
129
 
 
130
    def test_simple_branch_break_lock(self):
 
131
        self.setup_smart_server_with_call_log()
 
132
        t = self.make_branch_and_tree('branch')
 
133
        t.branch.lock_write()
 
134
        self.reset_smart_call_log()
 
135
        out, err = self.run_bzr(['break-lock', '--force', self.get_url('branch')])
 
136
        # This figure represent the amount of work to perform this use case. It
 
137
        # is entirely ok to reduce this number if a test fails due to rpc_count
 
138
        # being too low. If rpc_count increases, more network roundtrips have
 
139
        # become necessary for this use case. Please do not adjust this number
 
140
        # upwards without agreement from bzr's network support maintainers.
 
141
        self.assertThat(self.hpss_calls, ContainsNoVfsCalls)
 
142
        self.assertLength(1, self.hpss_connections)
 
143
        self.assertLength(5, self.hpss_calls)