~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_errors.py

  • Committer: Jelmer Vernooij
  • Date: 2009-02-23 20:55:58 UTC
  • mfrom: (4034 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4053.
  • Revision ID: jelmer@samba.org-20090223205558-1cx2k4w1zgs8r5qa
Merge bzr.dev.

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
560
560
        err = errors.UnknownErrorFromSmartServer(orig_err)
561
561
        self.assertEquals(
562
562
            "Server sent an unexpected error: ('error', 'tuple')", str(err))
563
 
    
 
563
 
564
564
    def test_smart_message_handler_error(self):
565
565
        # Make an exc_info tuple.
566
566
        try:
577
577
        self.assertEqual(str(err), "Branching 'bar'(foo) must create a"
578
578
                                   " working tree.")
579
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
 
580
596
    def test_invalid_shelf_id(self):
581
597
        invalid_id = "foo"
582
598
        err = errors.InvalidShelfId(invalid_id)
583
599
        self.assertEqual('"foo" is not a valid shelf id, '
584
600
            'try a number instead.', str(err))
585
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
 
586
617
 
587
618
class PassThroughError(errors.BzrError):
588
 
    
 
619
 
589
620
    _fmt = """Pass through %(foo)s and %(bar)s"""
590
621
 
591
622
    def __init__(self, foo, bar):
602
633
 
603
634
 
604
635
class TestErrorFormatting(TestCase):
605
 
    
 
636
 
606
637
    def test_always_str(self):
607
638
        e = PassThroughError(u'\xb5', 'bar')
608
639
        self.assertIsInstance(e.__str__(), str)
619
650
                ['ErrorWithNoFormat uses its docstring as a format, it should use _fmt instead'],
620
651
                lambda x: str(x), e)
621
652
        ## s = str(e)
622
 
        self.assertEqual(s, 
 
653
        self.assertEqual(s,
623
654
                "This class has a docstring but no format string.")
624
655
 
625
656
    def test_mismatched_format_args(self):