~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

  • Committer: John Arbash Meinel
  • Date: 2006-04-27 17:13:19 UTC
  • mto: This revision was merged to the branch mainline in revision 1752.
  • Revision ID: john@arbash-meinel.com-20060427171319-2ca1ae1bbba4465a
Adding tests for the rest of the _win32 functions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
import tempfile
32
32
import unicodedata
33
33
import urllib
 
34
from ntpath import (abspath as _nt_abspath,
 
35
                    join as _nt_join,
 
36
                    normpath as _nt_normpath,
 
37
                    realpath as _nt_realpath,
 
38
                    )
34
39
 
35
40
import bzrlib
36
41
from bzrlib.errors import (BzrError,
235
240
    # importing directly from ntpath allows us to test this 
236
241
    # on non-win32 platforms
237
242
    # TODO: jam 20060426 consider moving this import outside of the function
238
 
    from ntpath import normpath
239
 
    win32_path = normpath(abspath(path)).replace('\\', '/')
 
243
    win32_path = _nt_normpath(_win32_abspath(path)).replace('\\', '/')
240
244
    return 'file:///' + win32_path[0] + '|' + urlescape(win32_path[2:])
241
245
 
242
246
 
262
266
_fs_enc = sys.getfilesystemencoding()
263
267
def _posix_abspath(path):
264
268
    return os.path.abspath(path.encode(_fs_enc)).decode(_fs_enc)
 
269
    # jam 20060426 This is another possibility which mimics 
 
270
    # os.path.abspath, only uses unicode characters instead
 
271
    # if not os.path.isabs(path):
 
272
    #     return os.path.join(os.getcwdu(), path)
 
273
    # return path
265
274
 
266
275
 
267
276
def _posix_realpath(path):
269
278
 
270
279
 
271
280
def _win32_abspath(path):
272
 
    return _posix_abspath(path).replace('\\', '/')
 
281
    return _nt_abspath(path.encode(_fs_enc)).decode(_fs_enc).replace('\\', '/')
273
282
 
274
283
 
275
284
def _win32_realpath(path):
276
 
    return _posix_realpath(path).replace('\\', '/')
 
285
    return _nt_realpath(path.encode(_fs_enc)).decode(_fs_enc).replace('\\', '/')
277
286
 
278
287
 
279
288
def _win32_pathjoin(*args):
280
 
    return os.path.join(*args).replace('\\', '/')
 
289
    return _nt_join(*args).replace('\\', '/')
281
290
 
282
291
 
283
292
def _win32_normpath(path):
284
 
    return os.path.normpath(path).replace('\\', '/')
 
293
    return _nt_normpath(path).replace('\\', '/')
285
294
 
286
295
 
287
296
def _win32_getcwd():
313
322
MIN_ABS_URLPATHLENGTH = len('file:///')
314
323
 
315
324
 
316
 
 
317
325
if sys.platform == 'win32':
318
326
    abspath = _win32_abspath
319
327
    realpath = _win32_realpath
329
337
    MIN_ABS_PATHLENGTH = 3
330
338
    MIN_ABS_URLPATHLENGTH = len('file:///C|/')
331
339
 
 
340
 
332
341
def normalizepath(f):
333
342
    if hasattr(os.path, 'realpath'):
334
343
        F = realpath