~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_lockdir.py

Merge previous attempt into current trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006, 2007, 2008 Canonical Ltd
 
1
# Copyright (C) 2006-2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
197
197
        self.assertEqual('%s %s\n'
198
198
                         '%s\n%s\n'
199
199
                         'Will continue to try until %s, unless '
200
 
                         'you press Ctrl-C\n'
201
 
                         'If you\'re sure that it\'s not being '
202
 
                         'modified, use bzr break-lock %s',
 
200
                         'you press Ctrl-C.\n'
 
201
                         'See "bzr help break-lock" for more.',
203
202
                         self._logged_reports[0][0])
204
203
        args = self._logged_reports[0][1]
205
204
        self.assertEqual('Unable to obtain', args[0])
420
419
        self.assertEqual('%s %s\n'
421
420
                         '%s\n%s\n'
422
421
                         'Will continue to try until %s, unless '
423
 
                         'you press Ctrl-C\n'
424
 
                         'If you\'re sure that it\'s not being '
425
 
                         'modified, use bzr break-lock %s',
 
422
                         'you press Ctrl-C.\n'
 
423
                         'See "bzr help break-lock" for more.',
426
424
                         self._logged_reports[0][0])
427
425
        args = self._logged_reports[0][1]
428
426
        self.assertEqual('Unable to obtain', args[0])
435
433
        self.assertEqual('%s %s\n'
436
434
                         '%s\n%s\n'
437
435
                         'Will continue to try until %s, unless '
438
 
                         'you press Ctrl-C\n'
439
 
                         'If you\'re sure that it\'s not being '
440
 
                         'modified, use bzr break-lock %s',
 
436
                         'you press Ctrl-C.\n'
 
437
                         'See "bzr help break-lock" for more.',
441
438
                         self._logged_reports[1][0])
442
439
        args = self._logged_reports[1][1]
443
440
        self.assertEqual('Lock owner changed for', args[0])
669
666
        # no kibble
670
667
        check_dir(['held'])
671
668
 
 
669
    def test_no_lockdir_info(self):
 
670
        """We can cope with empty info files."""
 
671
        # This seems like a fairly common failure case - see
 
672
        # <https://bugs.launchpad.net/bzr/+bug/185103> and all its dupes.
 
673
        # Processes are often interrupted after opening the file
 
674
        # before the actual contents are committed.
 
675
        t = self.get_transport()
 
676
        t.mkdir('test_lock')
 
677
        t.mkdir('test_lock/held')
 
678
        t.put_bytes('test_lock/held/info', '')
 
679
        lf = LockDir(t, 'test_lock')
 
680
        info = lf.peek()
 
681
        formatted_info = lf._format_lock_info(info)
 
682
        self.assertEquals(
 
683
            ['lock %s' % t.abspath('test_lock'),
 
684
             'held by <unknown> on host <unknown> [process #<unknown>]',
 
685
             'locked (unknown)'],
 
686
            formatted_info)
 
687
 
672
688
 
673
689
class TestLockDirHooks(TestCaseWithTransport):
674
690