~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_serve.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:
18
18
"""Tests of the bzr serve command."""
19
19
 
20
20
import os
 
21
import os.path
21
22
import signal
22
23
import subprocess
23
24
import sys
34
35
from bzrlib.errors import ParamikoNotPresent
35
36
from bzrlib.smart import client, medium
36
37
from bzrlib.smart.server import SmartTCPServer
37
 
from bzrlib.tests import TestCaseWithTransport, TestSkipped
 
38
from bzrlib.tests import (
 
39
    TestCaseWithTransport,
 
40
    TestCaseWithMemoryTransport,
 
41
    TestSkipped,
 
42
    )
38
43
from bzrlib.trace import mutter
39
44
from bzrlib.transport import get_transport, remote
40
45
 
315
320
        client_medium.disconnect()
316
321
 
317
322
 
 
323
class TestUserdirExpansion(TestCaseWithMemoryTransport):
 
324
 
 
325
    def fake_expanduser(self, path):
 
326
        """A simple, environment-independent, function for the duration of this
 
327
        test.
 
328
 
 
329
        Paths starting with a path segment of '~user' will expand to start with
 
330
        '/home/user/'.  Every other path will be unchanged.
 
331
        """
 
332
        if path.split('/', 1)[0] == '~user':
 
333
            return '/home/user' + path[len('~user'):]
 
334
        return path
 
335
 
 
336
    def make_test_server(self, base_path='/'):
 
337
        """Make and setUp a BzrServerMaker, backed by a memory transport, and
 
338
        creat '/home/user' in that transport.
 
339
        """
 
340
        from bzrlib.smart.server import BzrServerMaker
 
341
        bzr_server = BzrServerMaker(
 
342
            self.fake_expanduser, lambda t: base_path)
 
343
        mem_transport = self.get_transport()
 
344
        mem_transport.mkdir_multi(['home', 'home/user'])
 
345
        bzr_server.setUp(mem_transport, None, None, inet=True)
 
346
        return bzr_server
 
347
 
 
348
    def test_bzr_serve_expands_userdir(self):
 
349
        bzr_server = self.make_test_server()
 
350
        self.assertTrue(bzr_server.smart_server.backing_transport.has('~user'))
 
351
 
 
352
    def test_bzr_serve_does_not_expand_userdir_outside_base(self):
 
353
        bzr_server = self.make_test_server('/foo')
 
354
        self.assertFalse(bzr_server.smart_server.backing_transport.has('~user'))
318
355