~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/lockdir.py

Rework test_script a little bit.


Don't allow someone to request a stdin request to echo.
Echo never reads from stdin, it just echos its arguments.
You use 'cat' if you want to read from stdin.

A few other fixes because the tests were using filenames
that are actually illegal on Windows, rather than just
nonexistant.


Change the exception handling for commands so that
unknown errors don't get silently squashed and then
turn into hard-to-debug errors later.

test_script now passes on Windows.

Show diffs side-by-side

added added

removed removed

Lines of Context:
112
112
    lock,
113
113
    )
114
114
import bzrlib.config
 
115
from bzrlib.decorators import only_raises
115
116
from bzrlib.errors import (
116
117
        DirectoryNotEmpty,
117
118
        FileExists,
240
241
        # incorrect.  It's possible some other servers or filesystems will
241
242
        # have a similar bug allowing someone to think they got the lock
242
243
        # when it's already held.
243
 
        #
244
 
        # See <https://bugs.edge.launchpad.net/bzr/+bug/498378> for one case.
245
 
        #
246
 
        # Strictly the check is unnecessary and a waste of time for most
247
 
        # people, but probably worth trapping if something is wrong.
248
244
        info = self.peek()
249
245
        self._trace("after locking, info=%r", info)
250
 
        if info is None:
251
 
            raise LockFailed(self, "lock was renamed into place, but "
252
 
                "now is missing!")
253
246
        if info['nonce'] != self.nonce:
254
247
            self._trace("rename succeeded, "
255
248
                "but lock is still held by someone else")
294
287
                                            info_bytes)
295
288
        return tmpname
296
289
 
 
290
    @only_raises(LockNotHeld, LockBroken)
297
291
    def unlock(self):
298
292
        """Release a held lock
299
293
        """