/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_errors.py

  • Committer: Benoît Pierre
  • Date: 2009-02-24 00:25:32 UTC
  • mfrom: (4035 +trunk)
  • mto: (4056.1.1 trunk2)
  • mto: This revision was merged to the branch mainline in revision 4058.
  • Revision ID: benoit.pierre@gmail.com-20090224002532-i2f64ou15pa7if2y
Merge with upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
158
158
        error = errors.MediumNotConnected("a medium")
159
159
        self.assertEqualDiff(
160
160
            "The medium 'a medium' is not connected.", str(error))
161
 
 
 
161
 
162
162
    def test_no_public_branch(self):
163
163
        b = self.make_branch('.')
164
164
        error = errors.NoPublicBranch(b)
171
171
        error = errors.NoRepositoryPresent(dir)
172
172
        self.assertNotEqual(-1, str(error).find((dir.transport.clone('..').base)))
173
173
        self.assertEqual(-1, str(error).find((dir.transport.base)))
174
 
        
 
174
 
175
175
    def test_no_smart_medium(self):
176
176
        error = errors.NoSmartMedium("a transport")
177
177
        self.assertEqualDiff("The transport 'a transport' cannot tunnel the "
461
461
        self.assertEqual(
462
462
            "Container has multiple records with the same name: n\xc3\xa5me",
463
463
            str(e))
464
 
        
 
464
 
465
465
    def test_check_error(self):
466
466
        # This has a member called 'message', which is problematic in
467
467
        # python2.5 because that is a slot on the base Exception class
561
561
        self.assertEquals(
562
562
            "Server sent an unexpected error: ('error', 'tuple')", str(err))
563
563
 
 
564
    def test_smart_message_handler_error(self):
 
565
        # Make an exc_info tuple.
 
566
        try:
 
567
            raise Exception("example error")
 
568
        except Exception:
 
569
            exc_info = sys.exc_info()
 
570
        err = errors.SmartMessageHandlerError(exc_info)
 
571
        self.assertStartsWith(
 
572
            str(err), "The message handler raised an exception:\n")
 
573
        self.assertEndsWith(str(err), "Exception: example error\n")
 
574
 
 
575
    def test_must_have_working_tree(self):
 
576
        err = errors.MustHaveWorkingTree('foo', 'bar')
 
577
        self.assertEqual(str(err), "Branching 'bar'(foo) must create a"
 
578
                                   " working tree.")
 
579
 
 
580
    def test_no_such_view(self):
 
581
        err = errors.NoSuchView('foo')
 
582
        self.assertEquals("No such view: foo.", str(err))
 
583
 
 
584
    def test_views_not_supported(self):
 
585
        err = errors.ViewsNotSupported('atree')
 
586
        err_str = str(err)
 
587
        self.assertStartsWith(err_str, "Views are not supported by ")
 
588
        self.assertEndsWith(err_str, "; use 'bzr upgrade' to change your "
 
589
            "tree to a later format.")
 
590
 
 
591
    def test_file_outside_view(self):
 
592
        err = errors.FileOutsideView('baz', ['foo', 'bar'])
 
593
        self.assertEquals('Specified file "baz" is outside the current view: '
 
594
            'foo, bar', str(err))
 
595
 
 
596
    def test_invalid_shelf_id(self):
 
597
        invalid_id = "foo"
 
598
        err = errors.InvalidShelfId(invalid_id)
 
599
        self.assertEqual('"foo" is not a valid shelf id, '
 
600
            'try a number instead.', str(err))
 
601
 
 
602
    def test_unresumable_write_group(self):
 
603
        repo = "dummy repo"
 
604
        wg_tokens = ['token']
 
605
        reason = "a reason"
 
606
        err = errors.UnresumableWriteGroup(repo, wg_tokens, reason)
 
607
        self.assertEqual(
 
608
            "Repository dummy repo cannot resume write group "
 
609
            "['token']: a reason", str(err))
 
610
 
 
611
    def test_unsuspendable_write_group(self):
 
612
        repo = "dummy repo"
 
613
        err = errors.UnsuspendableWriteGroup(repo)
 
614
        self.assertEqual(
 
615
            'Repository dummy repo cannot suspend a write group.', str(err))
 
616
 
564
617
 
565
618
class PassThroughError(errors.BzrError):
566
 
    
 
619
 
567
620
    _fmt = """Pass through %(foo)s and %(bar)s"""
568
621
 
569
622
    def __init__(self, foo, bar):
580
633
 
581
634
 
582
635
class TestErrorFormatting(TestCase):
583
 
    
 
636
 
584
637
    def test_always_str(self):
585
638
        e = PassThroughError(u'\xb5', 'bar')
586
639
        self.assertIsInstance(e.__str__(), str)
597
650
                ['ErrorWithNoFormat uses its docstring as a format, it should use _fmt instead'],
598
651
                lambda x: str(x), e)
599
652
        ## s = str(e)
600
 
        self.assertEqual(s, 
 
653
        self.assertEqual(s,
601
654
                "This class has a docstring but no format string.")
602
655
 
603
656
    def test_mismatched_format_args(self):