~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transport/ftp.py

  • Committer: John Arbash Meinel
  • Date: 2006-08-21 19:31:47 UTC
  • mto: This revision was merged to the branch mainline in revision 1953.
  • Revision ID: john@arbash-meinel.com-20060821193147-292351b090cf399b
Fix FtpTransport so that it raises UnicodeError and skips the unicode path tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
import random
38
38
from warnings import warn
39
39
 
 
40
from bzrlib import (
 
41
    errors,
 
42
    urlutils,
 
43
    )
 
44
from bzrlib.trace import mutter, warning
40
45
from bzrlib.transport import (
41
 
    Transport,
42
46
    Server,
43
47
    split_url,
 
48
    Transport,
44
49
    )
45
 
import bzrlib.errors as errors
46
 
from bzrlib.trace import mutter, warning
47
50
import bzrlib.ui
48
51
 
49
52
_have_medusa = False
189
192
 
190
193
    def _abspath(self, relpath):
191
194
        assert isinstance(relpath, basestring)
192
 
        relpath = urllib.unquote(relpath)
 
195
        relpath = urlutils.unescape(relpath)
193
196
        relpath_parts = relpath.split('/')
194
197
        if len(relpath_parts) > 1:
195
198
            if relpath_parts[0] == '':
212
215
        # Possibly, we could use urlparse.urljoin() here, but
213
216
        # I'm concerned about when it chooses to strip the last
214
217
        # portion of the path, and when it doesn't.
215
 
        return '/'.join(basepath) or '/'
 
218
 
 
219
        # XXX: It seems that ftplib does not handle Unicode paths
 
220
        # at the same time, medusa won't handle utf8 paths
 
221
        # So if we .encode(utf8) here, then we get a Server failure.
 
222
        # while if we use str(), we get a UnicodeError, and the test suite
 
223
        # just skips testing UnicodePaths.
 
224
        return str('/'.join(basepath) or '/')
216
225
    
217
226
    def abspath(self, relpath):
218
227
        """Return the full url to the given relative path.