~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_errors.py

  • Committer: Andrew Bennetts
  • Date: 2010-10-13 00:26:41 UTC
  • mto: This revision was merged to the branch mainline in revision 5498.
  • Revision ID: andrew.bennetts@canonical.com-20101013002641-9tlh9k89mlj1666m
Keep docs-plain working.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006-2011 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
25
25
    bzrdir,
26
26
    errors,
27
27
    osutils,
 
28
    symbol_versioning,
28
29
    urlutils,
29
30
    )
30
 
from bzrlib.tests import (
31
 
    TestCase,
32
 
    TestCaseWithTransport,
33
 
    TestSkipped,
34
 
    )
 
31
from bzrlib.tests import TestCase, TestCaseWithTransport, TestSkipped
35
32
 
36
33
 
37
34
class TestErrors(TestCaseWithTransport):
300
297
            str(error))
301
298
 
302
299
    def test_up_to_date(self):
303
 
        error = errors.UpToDateFormat("someformat")
304
 
        self.assertEqualDiff(
305
 
            "The branch format someformat is already at the most "
306
 
            "recent format.", str(error))
 
300
        error = errors.UpToDateFormat(bzrdir.BzrDirFormat4())
 
301
        self.assertEqualDiff("The branch format All-in-one "
 
302
                             "format 4 is already at the most "
 
303
                             "recent format.",
 
304
                             str(error))
307
305
 
308
306
    def test_corrupt_repository(self):
309
307
        repo = self.make_repository('.')
577
575
        try:
578
576
            1/0
579
577
        except ZeroDivisionError:
580
 
            err = errors.HookFailed('hook stage', 'hook name', sys.exc_info(),
581
 
                warn=False)
582
 
        # GZ 2010-11-08: Should not store exc_info in exception instances, but
583
 
        #                HookFailed is deprecated anyway and could maybe go.
584
 
        try:
585
 
            self.assertStartsWith(
586
 
                str(err), 'Hook \'hook name\' during hook stage failed:\n')
587
 
            self.assertEndsWith(
588
 
                str(err), 'integer division or modulo by zero')
589
 
        finally:
590
 
            del err
 
578
            exc_info = sys.exc_info()
 
579
        err = errors.HookFailed('hook stage', 'hook name', exc_info, warn=False)
 
580
        self.assertStartsWith(
 
581
            str(err), 'Hook \'hook name\' during hook stage failed:\n')
 
582
        self.assertEndsWith(
 
583
            str(err), 'integer division or modulo by zero')
591
584
 
592
585
    def test_tip_change_rejected(self):
593
586
        err = errors.TipChangeRejected(u'Unicode message\N{INTERROBANG}')
616
609
        try:
617
610
            raise Exception("example error")
618
611
        except Exception:
619
 
            err = errors.SmartMessageHandlerError(sys.exc_info())
620
 
        # GZ 2010-11-08: Should not store exc_info in exception instances.
621
 
        try:
622
 
            self.assertStartsWith(
623
 
                str(err), "The message handler raised an exception:\n")
624
 
            self.assertEndsWith(str(err), "Exception: example error\n")
625
 
        finally:
626
 
            del err
 
612
            exc_info = sys.exc_info()
 
613
        err = errors.SmartMessageHandlerError(exc_info)
 
614
        self.assertStartsWith(
 
615
            str(err), "The message handler raised an exception:\n")
 
616
        self.assertEndsWith(str(err), "Exception: example error\n")
627
617
 
628
618
    def test_must_have_working_tree(self):
629
619
        err = errors.MustHaveWorkingTree('foo', 'bar')
682
672
        err = errors.NotBranchError('path', bzrdir=bzrdir)
683
673
        self.assertEqual('Not a branch: "path".', str(err))
684
674
 
685
 
    def test_not_branch_bzrdir_with_recursive_not_branch_error(self):
686
 
        class FakeBzrDir(object):
687
 
            def open_repository(self):
688
 
                # str() on the NotBranchError will trigger a call to this,
689
 
                # which in turn will another, identical NotBranchError.
690
 
                raise errors.NotBranchError('path', bzrdir=FakeBzrDir())
691
 
        err = errors.NotBranchError('path', bzrdir=FakeBzrDir())
692
 
        self.assertEqual('Not a branch: "path".', str(err))
693
 
 
694
675
    def test_not_branch_laziness(self):
695
676
        real_bzrdir = self.make_bzrdir('path')
696
677
        class FakeBzrDir(object):