Bug #1213894: os.path.realpath didn't resolve symlinks that were the first
component of the path.
This commit is contained in:
parent
5661699995
commit
268e61cf74
|
@ -414,7 +414,7 @@ symbolic links encountered in the path."""
|
||||||
if isabs(filename):
|
if isabs(filename):
|
||||||
bits = ['/'] + filename.split('/')[1:]
|
bits = ['/'] + filename.split('/')[1:]
|
||||||
else:
|
else:
|
||||||
bits = filename.split('/')
|
bits = [''] + filename.split('/')
|
||||||
|
|
||||||
for i in range(2, len(bits)+1):
|
for i in range(2, len(bits)+1):
|
||||||
component = join(*bits[0:i])
|
component = join(*bits[0:i])
|
||||||
|
|
|
@ -476,6 +476,26 @@ class PosixPathTest(unittest.TestCase):
|
||||||
self.safe_rmdir(ABSTFN + "/k/y")
|
self.safe_rmdir(ABSTFN + "/k/y")
|
||||||
self.safe_rmdir(ABSTFN + "/k")
|
self.safe_rmdir(ABSTFN + "/k")
|
||||||
self.safe_rmdir(ABSTFN)
|
self.safe_rmdir(ABSTFN)
|
||||||
|
|
||||||
|
def test_realpath_resolve_first(self):
|
||||||
|
# Bug #1213894: The first component of the path, if not absolute,
|
||||||
|
# must be resolved too.
|
||||||
|
|
||||||
|
try:
|
||||||
|
old_path = abspath('.')
|
||||||
|
os.mkdir(ABSTFN)
|
||||||
|
os.mkdir(ABSTFN + "/k")
|
||||||
|
os.symlink(ABSTFN, ABSTFN + "link")
|
||||||
|
os.chdir(dirname(ABSTFN))
|
||||||
|
|
||||||
|
base = basename(ABSTFN)
|
||||||
|
self.assertEqual(realpath(base + "link"), ABSTFN)
|
||||||
|
self.assertEqual(realpath(base + "link/k"), ABSTFN + "/k")
|
||||||
|
finally:
|
||||||
|
os.chdir(old_path)
|
||||||
|
self.safe_remove(ABSTFN + "link")
|
||||||
|
self.safe_rmdir(ABSTFN + "/k")
|
||||||
|
self.safe_rmdir(ABSTFN)
|
||||||
|
|
||||||
# Convenience functions for removing temporary files.
|
# Convenience functions for removing temporary files.
|
||||||
def pass_os_error(self, func, filename):
|
def pass_os_error(self, func, filename):
|
||||||
|
|
|
@ -136,6 +136,9 @@ Extension Modules
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Bug #1213894: os.path.realpath didn't resolve symlinks that were the first
|
||||||
|
component of the path.
|
||||||
|
|
||||||
- Patch #1120353: The xmlrpclib module provides better, more transparent,
|
- Patch #1120353: The xmlrpclib module provides better, more transparent,
|
||||||
support for datetime.{datetime,date,time} objects. With use_datetime set
|
support for datetime.{datetime,date,time} objects. With use_datetime set
|
||||||
to True, applications shouldn't have to fiddle with the DateTime wrapper
|
to True, applications shouldn't have to fiddle with the DateTime wrapper
|
||||||
|
|
Loading…
Reference in New Issue