~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

Merge bzr.dev, update to use new hooks.

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
21
    bzrdir,
25
22
    config,
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):
70
70
        # shouldn't fail and should not produce error output
71
71
        self.assertEqual('', err)
72
72
 
 
73
    def test_break_lock_no_interaction(self):
 
74
        """With --force, the user isn't asked for confirmation"""
 
75
        self.master_branch.lock_write()
 
76
        run_script(self, """
 
77
        $ bzr break-lock --force master-repo/master-branch
 
78
        Broke lock ...master-branch/.bzr/...
 
79
        """)
 
80
        # lock should now be dead
 
81
        self.assertRaises(errors.LockBroken, self.master_branch.unlock)
 
82
 
73
83
    def test_break_lock_everything_locked(self):
74
84
        ### if everything is locked, we should be able to unlock the lot.
75
85
        # however, we dont test breaking the working tree because we
95
105
        self.assertRaises(errors.LockBroken, self.master_branch.unlock)
96
106
 
97
107
 
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
108
class TestConfigBreakLock(tests.TestCaseWithTransport):
108
109
 
109
110
    def setUp(self):
124
125
                     stdin="y\n")
125
126
        self.assertRaises(errors.LockBroken, self.config.unlock)
126
127
 
 
128
 
 
129
class TestSmartServerBreakLock(tests.TestCaseWithTransport):
 
130
 
 
131
    def test_simple_branch_break_lock(self):
 
132
        self.setup_smart_server_with_call_log()
 
133
        t = self.make_branch_and_tree('branch')
 
134
        t.branch.lock_write()
 
135
        self.reset_smart_call_log()
 
136
        out, err = self.run_bzr(['break-lock', '--force', self.get_url('branch')])
 
137
        # This figure represent the amount of work to perform this use case. It
 
138
        # is entirely ok to reduce this number if a test fails due to rpc_count
 
139
        # being too low. If rpc_count increases, more network roundtrips have
 
140
        # become necessary for this use case. Please do not adjust this number
 
141
        # upwards without agreement from bzr's network support maintainers.
 
142
        self.assertThat(self.hpss_calls, ContainsNoVfsCalls)
 
143
        self.assertLength(5, self.hpss_calls)