Commit 29867371 authored by Georg Brandl's avatar Georg Brandl

#1742: don't raise exception on os.path.relpath("a", "a"), but return os.curdir.

Reported by Jesse Towner.
parent c7620f0f
......@@ -490,4 +490,6 @@ def relpath(path, start=curdir):
i += 1
rel_list = [pardir] * (len(start_list)-i) + path_list[i:]
if not rel_list:
return curdir
return join(*rel_list)
......@@ -398,4 +398,6 @@ def relpath(path, start=curdir):
i = len(commonprefix([start_list, path_list]))
rel_list = [pardir] * (len(start_list)-i) + path_list[i:]
if not rel_list:
return curdir
return join(*rel_list)
......@@ -166,6 +166,7 @@ tester('ntpath.relpath("a", "../b")', '..\\'+currentdir+'\\a')
tester('ntpath.relpath("a/b", "../c")', '..\\'+currentdir+'\\a\\b')
tester('ntpath.relpath("a", "b/c")', '..\\..\\a')
tester('ntpath.relpath("//conky/mountpoint/a", "//conky/mountpoint/b/c")', '..\\..\\a')
tester('ntpath.relpath("a", "a")', '.')
if errors:
raise TestFailed(str(errors) + " errors.")
......
......@@ -501,6 +501,7 @@ class PosixPathTest(unittest.TestCase):
self.assertEqual(posixpath.relpath("a", "../b"), "../"+curdir+"/a")
self.assertEqual(posixpath.relpath("a/b", "../c"), "../"+curdir+"/a/b")
self.assertEqual(posixpath.relpath("a", "b/c"), "../../a")
self.assertEqual(posixpath.relpath("a", "a"), ".")
finally:
os.getcwd = real_getcwd
......
......@@ -342,6 +342,9 @@ Core and builtins
Library
-------
- Bug #1742: return os.curdir from os.path.relpath() if both arguments are
equal instead of raising an exception.
- Patch #1637: fix urlparse for URLs like 'http://x.com?arg=/foo'.
- Patch #1698: allow '@' in username parsed by urlparse.py.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment