1037
1037
SmartServerResponse(('yes',)), response)
1040
class TestSmartServerPackRepositoryAutopack(tests.TestCaseWithTransport):
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
1049
tree.commit('commit %s' % x)
1050
self.assertEqual(10, len(repo._pack_collection.names()))
1051
del repo._pack_collection._max_pack_count
1054
def test_autopack_needed(self):
1055
repo = self.make_repo_needing_autopacking()
1056
backing = self.get_transport()
1057
request = smart.packrepository.SmartServerPackRepositoryAutopack(
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()))
1064
def test_autopack_not_needed(self):
1065
tree = self.make_branch_and_tree('.', format='pack-0.92')
1066
repo = tree.branch.repository
1068
tree.commit('commit %s' % x)
1069
backing = self.get_transport()
1070
request = smart.packrepository.SmartServerPackRepositoryAutopack(
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()))
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(
1082
response = request.execute('')
1084
FailedSmartServerResponse(('NotPackRepository',)), response)
1040
1087
class TestHandlers(tests.TestCase):
1041
1088
"""Tests for the request.request_handlers object."""
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)
1086
1136
smart.request.request_handlers.get('Repository.gather_stats'),
1087
1137
smart.repository.SmartServerRepositoryGatherStats)
1088
1138
self.assertEqual(