~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_errors.py

  • Committer: John Arbash Meinel
  • Date: 2010-02-17 17:11:16 UTC
  • mfrom: (4797.2.17 2.1)
  • mto: (4797.2.18 2.1)
  • mto: This revision was merged to the branch mainline in revision 5055.
  • Revision ID: john@arbash-meinel.com-20100217171116-h7t9223ystbnx5h8
merge bzr.2.1 in preparation for NEWS entry.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006, 2007, 2008, 2009 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
542
542
            1/0
543
543
        except ZeroDivisionError:
544
544
            exc_info = sys.exc_info()
545
 
        err = errors.HookFailed('hook stage', 'hook name', exc_info)
 
545
        err = errors.HookFailed('hook stage', 'hook name', exc_info, warn=False)
546
546
        self.assertStartsWith(
547
547
            str(err), 'Hook \'hook name\' during hook stage failed:\n')
548
548
        self.assertEndsWith(
623
623
        self.assertEqual(
624
624
            'Repository dummy repo cannot suspend a write group.', str(err))
625
625
 
 
626
    def test_not_branch_no_args(self):
 
627
        err = errors.NotBranchError('path')
 
628
        self.assertEqual('Not a branch: "path".', str(err))
 
629
 
 
630
    def test_not_branch_bzrdir_with_repo(self):
 
631
        bzrdir = self.make_repository('repo').bzrdir
 
632
        err = errors.NotBranchError('path', bzrdir=bzrdir)
 
633
        self.assertEqual(
 
634
            'Not a branch: "path": location is a repository.', str(err))
 
635
 
 
636
    def test_not_branch_bzrdir_without_repo(self):
 
637
        bzrdir = self.make_bzrdir('bzrdir')
 
638
        err = errors.NotBranchError('path', bzrdir=bzrdir)
 
639
        self.assertEqual('Not a branch: "path".', str(err))
 
640
 
 
641
    def test_not_branch_laziness(self):
 
642
        real_bzrdir = self.make_bzrdir('path')
 
643
        class FakeBzrDir(object):
 
644
            def __init__(self):
 
645
                self.calls = []
 
646
            def open_repository(self):
 
647
                self.calls.append('open_repository')
 
648
                raise errors.NoRepositoryPresent(real_bzrdir)
 
649
        fake_bzrdir = FakeBzrDir()
 
650
        err = errors.NotBranchError('path', bzrdir=fake_bzrdir)
 
651
        self.assertEqual([], fake_bzrdir.calls)
 
652
        str(err)
 
653
        self.assertEqual(['open_repository'], fake_bzrdir.calls)
 
654
        # Stringifying twice doesn't try to open a repository twice.
 
655
        str(err)
 
656
        self.assertEqual(['open_repository'], fake_bzrdir.calls)
 
657
 
626
658
 
627
659
class PassThroughError(errors.BzrError):
628
660
 
676
708
            socket.error(13, 'Permission denied'))
677
709
        self.assertContainsRe(str(e),
678
710
            r'Cannot bind address "example\.com:22":.*Permission denied')
 
711
 
 
712
    def test_file_timestamp_unavailable(self):            
 
713
        e = errors.FileTimestampUnavailable("/path/foo")
 
714
        self.assertEquals("The filestamp for /path/foo is not available.",
 
715
            str(e))