~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_smart.py

Add a Transport.is_readonly remote call, let {Branch,Repository}.lock_write remote call return UnlockableTransport, and miscellaneous test fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
395
395
        self.assertEqual(
396
396
            SmartServerResponse(('LockContention',)), response)
397
397
 
 
398
    def test_lock_write_on_readonly_transport(self):
 
399
        backing = self.get_readonly_transport()
 
400
        request = smart.branch.SmartServerBranchRequestLockWrite(backing)
 
401
        branch = self.make_branch('.')
 
402
        response = request.execute('')
 
403
        self.assertEqual(
 
404
            SmartServerResponse(('UnlockableTransport',)), response)
 
405
 
398
406
 
399
407
class TestSmartServerBranchRequestUnlock(tests.TestCaseWithTransport):
400
408
 
650
658
        self.assertEqual(
651
659
            SmartServerResponse(('LockContention',)), response)
652
660
 
 
661
    def test_lock_write_on_readonly_transport(self):
 
662
        backing = self.get_readonly_transport()
 
663
        request = smart.repository.SmartServerRepositoryLockWrite(backing)
 
664
        repository = self.make_repository('.')
 
665
        response = request.execute('')
 
666
        self.assertEqual(
 
667
            SmartServerResponse(('UnlockableTransport',)), response)
 
668
 
653
669
 
654
670
class TestSmartServerRepositoryUnlock(tests.TestCaseWithTransport):
655
671
 
682
698
            SmartServerResponse(('TokenMismatch',)), response)
683
699
 
684
700
 
 
701
class TestSmartServerIsReadonly(tests.TestCaseWithTransport):
 
702
 
 
703
    def test_is_readonly_no(self):
 
704
        backing = self.get_transport()
 
705
        request = smart.request.SmartServerIsReadonly(backing)
 
706
        response = request.execute()
 
707
        self.assertEqual(
 
708
            SmartServerResponse(('no',)), response)
 
709
 
 
710
    def test_is_readonly_yes(self):
 
711
        backing = self.get_readonly_transport()
 
712
        request = smart.request.SmartServerIsReadonly(backing)
 
713
        response = request.execute()
 
714
        self.assertEqual(
 
715
            SmartServerResponse(('yes',)), response)
 
716
 
 
717
 
685
718
class TestHandlers(tests.TestCase):
686
719
    """Tests for the request.request_handlers object."""
687
720
 
732
765
        self.assertEqual(
733
766
            smart.request.request_handlers.get('Repository.unlock'),
734
767
            smart.repository.SmartServerRepositoryUnlock)
 
768
        self.assertEqual(
 
769
            smart.request.request_handlers.get('Transport.is_readonly'),
 
770
            smart.request.SmartServerIsReadonly)