~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_lockdir.py

  • Committer: Robert Collins
  • Date: 2006-05-04 10:13:40 UTC
  • mto: (1697.1.1 integration)
  • mto: This revision was merged to the branch mainline in revision 1701.
  • Revision ID: robertc@robertcollins.net-20060504101340-18fa61cb9cf268fb
Add break_lock utility function to LockDir.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""Tests for LockDir"""
18
18
 
 
19
from cStringIO import StringIO
19
20
from threading import Thread
20
21
import time
21
22
 
 
23
import bzrlib
22
24
from bzrlib.errors import (
23
25
        LockBreakMismatch,
24
26
        LockContention, LockError, UnlockableTransport,
329
331
        self.assertTrue(t.has('test_lock/held/info'))
330
332
        lf1.unlock()
331
333
        self.assertFalse(t.has('test_lock/held/info'))
 
334
 
 
335
    def test_break_lock(self):
 
336
        # the ui based break_lock routine should Just Work (tm)
 
337
        ld1 = self.get_lock()
 
338
        ld2 = self.get_lock()
 
339
        ld1.create()
 
340
        ld1.lock_write()
 
341
        orig_factory = bzrlib.ui.ui_factory
 
342
        # silent ui - no need for stdout
 
343
        bzrlib.ui.ui_factory = bzrlib.ui.SilentUIFactory()
 
344
        bzrlib.ui.ui_factory.stdin = StringIO("y\n")
 
345
        try:
 
346
            ld2.break_lock()
 
347
            self.assertRaises(LockBroken, ld1.unlock)
 
348
        finally:
 
349
            bzrlib.ui.ui_factory = orig_factory