~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/smart/server.py

  • Committer: Andrew Bennetts
  • Date: 2009-09-16 01:37:57 UTC
  • mto: This revision was merged to the branch mainline in revision 4702.
  • Revision ID: andrew.bennetts@canonical.com-20090916013757-1rqvv4qskly0hdg9
Add some unit tests for parts of userdir expansion.

Show diffs side-by-side

added added

removed removed

Lines of Context:
345
345
            return None
346
346
 
347
347
 
348
 
class BzrServer(object):
 
348
class BzrServerMaker(object):
349
349
 
350
 
    def __init__(self, userdir_expander=None):
 
350
    def __init__(self, userdir_expander=None, get_base_path=None):
351
351
        self.cleanups = []
352
352
        self.base_path = None
353
353
        self.backing_transport = None
354
354
        if userdir_expander is None:
355
355
            userdir_expander = os.path.expanduser
356
356
        self.userdir_expander = userdir_expander
 
357
        if get_base_path is None:
 
358
            get_base_path = _local_path_for_transport
 
359
        self.get_base_path = get_base_path
357
360
 
358
361
    def _expand_userdirs(self, path):
359
362
        """Translate /~/ or /~user/ to e.g. /home/foo, using
381
384
 
382
385
    def _make_backing_transport(self, transport):
383
386
        """Chroot transport, and decorate with userdir expander."""
384
 
        self.base_path = _local_path_for_transport(transport)
 
387
        self.base_path = self.get_base_path(transport)
385
388
        chroot_server = chroot.ChrootServer(transport)
386
389
        chroot_server.setUp()
387
390
        self.cleanups.append(chroot_server.tearDown)
430
433
 
431
434
 
432
435
def serve_bzr(transport, host=None, port=None, inet=False):
433
 
    bzr_server = BzrServer()
 
436
    bzr_server = BzrServerMaker()
434
437
    try:
435
438
        bzr_server.setUp(transport, host, port, inet)
436
439
        bzr_server.smart_server.serve()