~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transport/local.py

transport implementations now tested consistently.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
import urllib
26
26
 
27
27
from bzrlib.trace import mutter
28
 
from bzrlib.transport import Transport
 
28
from bzrlib.transport import Transport, Server
29
29
from bzrlib.osutils import abspath
30
30
 
31
31
 
38
38
            base = base[7:]
39
39
        # realpath is incompatible with symlinks. When we traverse
40
40
        # up we might be able to normpath stuff. RBC 20051003
41
 
        super(LocalTransport, self).__init__(
42
 
            os.path.normpath(abspath(base)))
 
41
        base = os.path.normpath(abspath(base))
 
42
        if base[-1] != '/':
 
43
            base = base + '/'
 
44
        super(LocalTransport, self).__init__(base)
43
45
 
44
46
    def should_cache(self):
45
47
        return False
67
69
        from bzrlib.osutils import relpath
68
70
        if abspath is None:
69
71
            abspath = u'.'
70
 
        return relpath(self.base, abspath)
 
72
        if abspath.endswith('/'):
 
73
            abspath = abspath[:-1]
 
74
        return relpath(self.base[:-1], abspath)
71
75
 
72
76
    def has(self, relpath):
73
77
        return os.access(self.abspath(relpath), os.F_OK)
247
251
        mutter("%r destroyed" % self)
248
252
 
249
253
 
250
 
class LocalRelpathServer(object):
 
254
class LocalRelpathServer(Server):
251
255
    """A pretend server for local transports, using relpaths."""
252
256
 
253
 
 
254
 
class LocalAbspathServer(object):
 
257
    def get_url(self):
 
258
        """See Transport.Server.get_url."""
 
259
        return "."
 
260
 
 
261
 
 
262
class LocalAbspathServer(Server):
255
263
    """A pretend server for local transports, using absolute paths."""
256
264
 
257
 
 
258
 
class LocalURLServer(object):
 
265
    def get_url(self):
 
266
        """See Transport.Server.get_url."""
 
267
        return os.path.abspath("")
 
268
 
 
269
 
 
270
class LocalURLServer(Server):
259
271
    """A pretend server for local transports, using file:// urls."""
 
272
 
 
273
    def get_url(self):
 
274
        """See Transport.Server.get_url."""
 
275
        # FIXME: \ to / on windows
 
276
        return "file://%s" % os.path.abspath("")