add path.normjoin

This commit is contained in:
Prodesire 2018-03-19 12:00:49 +08:00
parent 7492f3280f
commit 25df88abe9
2 changed files with 12 additions and 1 deletions

View File

@ -34,3 +34,8 @@ def is_super_path(path1, path2):
parent_path2 = os.path.dirname(parent_path2) parent_path2 = os.path.dirname(parent_path2)
return False return False
def normjoin(path, *paths):
"""Join one or more path components intelligently and normalize it."""
return os.path.normpath(os.path.join(path, *paths))

View File

@ -1,7 +1,7 @@
import os import os
import pytest import pytest
from pydu.platform import WINDOWS from pydu.platform import WINDOWS
from pydu.path import cd, is_super_path from pydu.path import cd, is_super_path, normjoin
def test_cd(tmpdir): def test_cd(tmpdir):
@ -27,3 +27,9 @@ class TestIsSupoerPath:
assert is_super_path('c:/aa/bb', 'c:/aa\\bb/cc') assert is_super_path('c:/aa/bb', 'c:/aa\\bb/cc')
assert is_super_path('c:/aa\\bb', 'c:\\aa/bb/cc') assert is_super_path('c:/aa\\bb', 'c:\\aa/bb/cc')
assert is_super_path('c:/', 'c:\\') assert is_super_path('c:/', 'c:\\')
def test_normjoin():
assert normjoin('/a', 'b') == '/a/b'
assert normjoin('/a', '/b') == '/b'
assert normjoin('/a', '../b') == '/b'