~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-09-01 08:02:42 UTC
  • mfrom: (5390.3.3 faster-revert-593560)
  • Revision ID: pqm@pqm.ubuntu.com-20100901080242-esg62ody4frwmy66
(spiv) Avoid repeatedly calling self.target.all_file_ids() in
 InterTree.iter_changes. (Andrew Bennetts)

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
19
22
from bzrlib import (
20
23
    branch,
 
24
    bzrdir,
21
25
    config,
22
 
    controldir,
23
26
    errors,
 
27
    lockdir,
24
28
    osutils,
25
29
    tests,
26
30
    )
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
 
        controldir.ControlDir.create('master-repo').create_repository()
58
 
        self.master_branch = controldir.ControlDir.create_branch_convenience(
 
57
        bzrdir.BzrDir.create('master-repo').create_repository()
 
58
        self.master_branch = bzrdir.BzrDir.create_branch_convenience(
59
59
            'master-repo/master-branch')
60
 
        controldir.ControlDir.create('repo').create_repository()
61
 
        local_branch = controldir.ControlDir.create_branch_convenience('repo/branch')
 
60
        bzrdir.BzrDir.create('repo').create_repository()
 
61
        local_branch = bzrdir.BzrDir.create_branch_convenience('repo/branch')
62
62
        local_branch.bind(self.master_branch)
63
 
        checkoutdir = controldir.ControlDir.create('checkout')
64
 
        checkoutdir.set_branch_reference(local_branch)
 
63
        checkoutdir = bzrdir.BzrDir.create('checkout')
 
64
        branch.BranchReferenceFormat().initialize(
 
65
            checkoutdir, target_branch=local_branch)
65
66
        self.wt = checkoutdir.create_workingtree()
66
67
 
67
68
    def test_break_lock_help(self):
69
70
        # shouldn't fail and should not produce error output
70
71
        self.assertEqual('', err)
71
72
 
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
 
 
82
73
    def test_break_lock_everything_locked(self):
83
74
        ### if everything is locked, we should be able to unlock the lot.
84
75
        # however, we dont test breaking the working tree because we
104
95
        self.assertRaises(errors.LockBroken, self.master_branch.unlock)
105
96
 
106
97
 
 
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)