~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_commit.py

  • Committer: John Arbash Meinel
  • Date: 2006-12-01 19:41:16 UTC
  • mfrom: (2158 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2159.
  • Revision ID: john@arbash-meinel.com-20061201194116-nvn5qhfxux5284jc
[merge] bzr.dev 2158

Show diffs side-by-side

added added

removed removed

Lines of Context:
557
557
        tree = self.make_branch_and_tree('.')
558
558
        self.assertRaises(errors.PathsNotVersionedError, tree.commit, 
559
559
                          'message', specific_files=['bogus'])
 
560
 
 
561
    class Callback(object):
 
562
        
 
563
        def __init__(self, message, testcase):
 
564
            self.called = False
 
565
            self.message = message
 
566
            self.testcase = testcase
 
567
 
 
568
        def __call__(self, commit_obj):
 
569
            self.called = True
 
570
            self.testcase.assertTrue(isinstance(commit_obj, Commit))
 
571
            return self.message
 
572
 
 
573
    def test_commit_callback(self):
 
574
        """Commit should invoke a callback to get the message"""
 
575
 
 
576
        tree = self.make_branch_and_tree('.')
 
577
        try:
 
578
            tree.commit()
 
579
        except Exception, e:
 
580
            self.assertTrue(isinstance(e, BzrError))
 
581
            self.assertEqual('The message or message_callback keyword'
 
582
                             ' parameter is required for commit().', str(e))
 
583
        else:
 
584
            self.fail('exception not raised')
 
585
        cb = self.Callback(u'commit 1', self)
 
586
        tree.commit(message_callback=cb)
 
587
        self.assertTrue(cb.called)
 
588
        repository = tree.branch.repository
 
589
        message = repository.get_revision(tree.last_revision()).message
 
590
        self.assertEqual('commit 1', message)
 
591
 
 
592
    def test_no_callback_pointless(self):
 
593
        """Callback should not be invoked for pointless commit"""
 
594
        tree = self.make_branch_and_tree('.')
 
595
        cb = self.Callback(u'commit 2', self)
 
596
        self.assertRaises(PointlessCommit, tree.commit, message_callback=cb, 
 
597
                          allow_pointless=False)
 
598
        self.assertFalse(cb.called)
 
599
 
 
600
    def test_no_callback_netfailure(self):
 
601
        """Callback should not be invoked if connectivity fails"""
 
602
        tree = self.make_branch_and_tree('.')
 
603
        cb = self.Callback(u'commit 2', self)
 
604
        repository = tree.branch.repository
 
605
        # simulate network failure
 
606
        def raise_(self, arg, arg2):
 
607
            raise errors.NoSuchFile('foo')
 
608
        repository.add_inventory = raise_
 
609
        self.assertRaises(errors.NoSuchFile, tree.commit, message_callback=cb)
 
610
        self.assertFalse(cb.called)