~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_smart.py

  • Committer: Patch Queue Manager
  • Date: 2011-11-25 16:02:51 UTC
  • mfrom: (6280.7.14 hpss-write-group)
  • Revision ID: pqm@pqm.ubuntu.com-20111125160251-zz514fqebn1gqgbi
(jelmer) Add HPSS calls for the write group methods. (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
2139
2139
            request.execute(''))
2140
2140
 
2141
2141
 
 
2142
class TestSmartServerRepositoryWriteGroup(
 
2143
    tests.TestCaseWithMemoryTransport):
 
2144
 
 
2145
    def test_start_write_group(self):
 
2146
        backing = self.get_transport()
 
2147
        repo = self.make_repository('.')
 
2148
        lock_token = repo.lock_write().repository_token
 
2149
        self.addCleanup(repo.unlock)
 
2150
        request_class = smart_repo.SmartServerRepositoryStartWriteGroup
 
2151
        request = request_class(backing)
 
2152
        self.assertEqual(smart_req.SuccessfulSmartServerResponse(('ok', [])),
 
2153
            request.execute('', lock_token))
 
2154
 
 
2155
    def test_start_write_group_unsuspendable(self):
 
2156
        backing = self.get_transport()
 
2157
        repo = self.make_repository('.', format='knit')
 
2158
        lock_token = repo.lock_write().repository_token
 
2159
        self.addCleanup(repo.unlock)
 
2160
        request_class = smart_repo.SmartServerRepositoryStartWriteGroup
 
2161
        request = request_class(backing)
 
2162
        self.assertEqual(
 
2163
            smart_req.FailedSmartServerResponse(('UnsuspendableWriteGroup',)),
 
2164
            request.execute('', lock_token))
 
2165
 
 
2166
    def test_commit_write_group(self):
 
2167
        backing = self.get_transport()
 
2168
        repo = self.make_repository('.')
 
2169
        lock_token = repo.lock_write().repository_token
 
2170
        self.addCleanup(repo.unlock)
 
2171
        repo.start_write_group()
 
2172
        tokens = repo.suspend_write_group()
 
2173
        request_class = smart_repo.SmartServerRepositoryCommitWriteGroup
 
2174
        request = request_class(backing)
 
2175
        self.assertEqual(smart_req.SuccessfulSmartServerResponse(('ok',)),
 
2176
            request.execute('', lock_token, tokens))
 
2177
 
 
2178
    def test_abort_write_group(self):
 
2179
        backing = self.get_transport()
 
2180
        repo = self.make_repository('.')
 
2181
        lock_token = repo.lock_write().repository_token
 
2182
        repo.start_write_group()
 
2183
        tokens = repo.suspend_write_group()
 
2184
        self.addCleanup(repo.unlock)
 
2185
        request_class = smart_repo.SmartServerRepositoryAbortWriteGroup
 
2186
        request = request_class(backing)
 
2187
        self.assertEqual(smart_req.SuccessfulSmartServerResponse(('ok',)),
 
2188
            request.execute('', lock_token, tokens))
 
2189
 
 
2190
    def test_check_write_group(self):
 
2191
        backing = self.get_transport()
 
2192
        repo = self.make_repository('.')
 
2193
        lock_token = repo.lock_write().repository_token
 
2194
        repo.start_write_group()
 
2195
        tokens = repo.suspend_write_group()
 
2196
        self.addCleanup(repo.unlock)
 
2197
        request_class = smart_repo.SmartServerRepositoryCheckWriteGroup
 
2198
        request = request_class(backing)
 
2199
        self.assertEqual(smart_req.SuccessfulSmartServerResponse(('ok',)),
 
2200
            request.execute('', lock_token, tokens))
 
2201
 
 
2202
    def test_check_write_group_invalid(self):
 
2203
        backing = self.get_transport()
 
2204
        repo = self.make_repository('.')
 
2205
        lock_token = repo.lock_write().repository_token
 
2206
        self.addCleanup(repo.unlock)
 
2207
        request_class = smart_repo.SmartServerRepositoryCheckWriteGroup
 
2208
        request = request_class(backing)
 
2209
        self.assertEqual(smart_req.FailedSmartServerResponse(
 
2210
            ('UnresumableWriteGroup', ['random'],
 
2211
                'Malformed write group token')),
 
2212
            request.execute('', lock_token, ["random"]))
 
2213
 
 
2214
 
2142
2215
class TestSmartServerPackRepositoryAutopack(tests.TestCaseWithTransport):
2143
2216
 
2144
2217
    def make_repo_needing_autopacking(self, path='.'):
2306
2379
            smart_repo.SmartServerRepositoryTarball)
2307
2380
        self.assertHandlerEqual('Repository.unlock',
2308
2381
            smart_repo.SmartServerRepositoryUnlock)
 
2382
        self.assertHandlerEqual('Repository.start_write_group',
 
2383
            smart_repo.SmartServerRepositoryStartWriteGroup)
 
2384
        self.assertHandlerEqual('Repository.check_write_group',
 
2385
            smart_repo.SmartServerRepositoryCheckWriteGroup)
 
2386
        self.assertHandlerEqual('Repository.commit_write_group',
 
2387
            smart_repo.SmartServerRepositoryCommitWriteGroup)
 
2388
        self.assertHandlerEqual('Repository.abort_write_group',
 
2389
            smart_repo.SmartServerRepositoryAbortWriteGroup)
2309
2390
        self.assertHandlerEqual('VersionedFileRepository.get_serializer_format',
2310
2391
            smart_repo.SmartServerRepositoryGetSerializerFormat)
2311
2392
        self.assertHandlerEqual('Transport.is_readonly',