/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

Implement RemoteRepository.get_revision_graph (Wouter van Heyst, Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
264
264
            request.execute, backing.local_abspath('subdir'))
265
265
 
266
266
 
 
267
class TestSmartServerRepositoryGetRevisionGraph(tests.TestCaseWithTransport):
 
268
 
 
269
    def test_none_argument(self):
 
270
        backing = self.get_transport()
 
271
        request = smart.repository.SmartServerRepositoryGetRevisionGraph(backing)
 
272
        tree = self.make_branch_and_memory_tree('.')
 
273
        tree.lock_write()
 
274
        tree.add('')
 
275
        r1 = tree.commit('1st commit')
 
276
        r2 = tree.commit('2nd commit', rev_id=u'\xc8')
 
277
        tree.unlock()
 
278
 
 
279
        # the lines of revision_id->revision_parent_list has no guaranteed
 
280
        # order coming out of a dict, so sort both our test and response
 
281
        lines = sorted([' '.join([r2, r1]), r1])
 
282
        response = request.execute(backing.local_abspath(''), '')
 
283
        response.body = '\n'.join(sorted(response.body.split('\n')))
 
284
 
 
285
        self.assertEqual(SmartServerResponse(('ok', ),
 
286
            '\n'.join(lines).encode('utf8')),
 
287
            response)
 
288
 
 
289
    def test_specific_revision_argument(self):
 
290
        backing = self.get_transport()
 
291
        request = smart.repository.SmartServerRepositoryGetRevisionGraph(backing)
 
292
        tree = self.make_branch_and_memory_tree('.')
 
293
        tree.lock_write()
 
294
        tree.add('')
 
295
        r1 = tree.commit('1st commit', rev_id=u'\xc9')
 
296
        r2 = tree.commit('2nd commit', rev_id=u'\xc8')
 
297
        tree.unlock()
 
298
 
 
299
        self.assertEqual(SmartServerResponse(('ok', ),
 
300
            u'\xc9'.encode('utf8')),
 
301
            request.execute(backing.local_abspath(''), u'\xc9'.encode('utf8')))
 
302
    
 
303
    def test_no_such_revision(self):
 
304
        backing = self.get_transport()
 
305
        request = smart.repository.SmartServerRepositoryGetRevisionGraph(backing)
 
306
        tree = self.make_branch_and_memory_tree('.')
 
307
        tree.lock_write()
 
308
        tree.add('')
 
309
        r1 = tree.commit('1st commit')
 
310
        tree.unlock()
 
311
 
 
312
        self.assertEqual(SmartServerResponse(
 
313
            ('nosuchrevision', 'missingrevision', )),
 
314
            request.execute(backing.local_abspath(''), 'missingrevision'))
 
315
 
267
316
class TestSmartServerRequestHasRevision(tests.TestCaseWithTransport):
268
317
 
269
318
    def test_missing_revision(self):
332
381
            smart.request.request_handlers.get('BzrDir.open_branch'),
333
382
            smart.bzrdir.SmartServerRequestOpenBranch)
334
383
        self.assertEqual(
 
384
            smart.request.request_handlers.get('Repository.get_revision_graph'),
 
385
            smart.repository.SmartServerRepositoryGetRevisionGraph)
 
386
        self.assertEqual(
335
387
            smart.request.request_handlers.get('Repository.has_revision'),
336
388
            smart.repository.SmartServerRequestHasRevision)
337
389
        self.assertEqual(