/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_smart.py

  • Committer: Andrew Bennetts
  • Date: 2008-10-29 10:42:48 UTC
  • mto: This revision was merged to the branch mainline in revision 3814.
  • Revision ID: andrew.bennetts@canonical.com-20081029104248-cm1i6byb3ht8x2hh
Add tests for autopack RPC.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1037
1037
            SmartServerResponse(('yes',)), response)
1038
1038
 
1039
1039
 
 
1040
class TestSmartServerPackRepositoryAutopack(tests.TestCaseWithTransport):
 
1041
 
 
1042
    def make_repo_needing_autopacking(self, path='.'):
 
1043
        # Make a repo in need of autopacking.
 
1044
        tree = self.make_branch_and_tree('.', format='pack-0.92')
 
1045
        repo = tree.branch.repository
 
1046
        # monkey-patch the pack collection to disable autopacking
 
1047
        repo._pack_collection._max_pack_count = lambda count: count
 
1048
        for x in range(10):
 
1049
            tree.commit('commit %s' % x)
 
1050
        self.assertEqual(10, len(repo._pack_collection.names()))
 
1051
        del repo._pack_collection._max_pack_count
 
1052
        return repo
 
1053
 
 
1054
    def test_autopack_needed(self):
 
1055
        repo = self.make_repo_needing_autopacking()
 
1056
        backing = self.get_transport()
 
1057
        request = smart.packrepository.SmartServerPackRepositoryAutopack(
 
1058
            backing)
 
1059
        response = request.execute('')
 
1060
        self.assertEqual(SmartServerResponse(('ok',)), response)
 
1061
        repo._pack_collection.reload_pack_names()
 
1062
        self.assertEqual(1, len(repo._pack_collection.names()))
 
1063
    
 
1064
    def test_autopack_not_needed(self):
 
1065
        tree = self.make_branch_and_tree('.', format='pack-0.92')
 
1066
        repo = tree.branch.repository
 
1067
        for x in range(9):
 
1068
            tree.commit('commit %s' % x)
 
1069
        backing = self.get_transport()
 
1070
        request = smart.packrepository.SmartServerPackRepositoryAutopack(
 
1071
            backing)
 
1072
        response = request.execute('')
 
1073
        self.assertEqual(SmartServerResponse(('ok',)), response)
 
1074
        repo._pack_collection.reload_pack_names()
 
1075
        self.assertEqual(9, len(repo._pack_collection.names()))
 
1076
    
 
1077
    def test_autopack_on_nonpack_format(self):
 
1078
        repo = self.make_repository('.', format='knit')
 
1079
        backing = self.get_transport()
 
1080
        request = smart.packrepository.SmartServerPackRepositoryAutopack(
 
1081
            backing)
 
1082
        response = request.execute('')
 
1083
        self.assertEqual(
 
1084
            FailedSmartServerResponse(('NotPackRepository',)), response)
 
1085
        
 
1086
 
1040
1087
class TestHandlers(tests.TestCase):
1041
1088
    """Tests for the request.request_handlers object."""
1042
1089
 
1083
1130
            smart.request.request_handlers.get('BzrDir.open_branch'),
1084
1131
            smart.bzrdir.SmartServerRequestOpenBranch)
1085
1132
        self.assertEqual(
 
1133
            smart.request.request_handlers.get('PackRepository.autopack'),
 
1134
            smart.packrepository.SmartServerPackRepositoryAutopack)
 
1135
        self.assertEqual(
1086
1136
            smart.request.request_handlers.get('Repository.gather_stats'),
1087
1137
            smart.repository.SmartServerRepositoryGatherStats)
1088
1138
        self.assertEqual(