MERGE: Closes #14768: os.path.expanduser('~/a') doesn't works correctly when HOME is '/'

This commit is contained in:
Jesus Cea 2012-05-10 05:16:41 +02:00
commit b58ab2c6aa
4 changed files with 6 additions and 2 deletions

View File

@ -266,8 +266,8 @@ def expanduser(path):
root = b'/'
else:
root = '/'
userhome = userhome.rstrip(root) or userhome
return userhome + path[i:]
userhome = userhome.rstrip(root)
return (userhome + path[i:]) or root
# Expand paths containing shell variable substitutions.

View File

@ -300,6 +300,7 @@ class PosixPathTest(unittest.TestCase):
with support.EnvironmentVarGuard() as env:
env['HOME'] = '/'
self.assertEqual(posixpath.expanduser("~"), "/")
self.assertEqual(posixpath.expanduser("~/foo"), "/foo")
# expanduser should fall back to using the password database
del env['HOME']
home = pwd.getpwuid(os.getuid()).pw_dir

View File

@ -335,6 +335,7 @@ Andrew Francis
Martin Franklin
Bruce Frederiksen
Robin Friedrich
Bradley Froehle
Ivan Frohne
Matthias Fuchs
Jim Fulton

View File

@ -139,6 +139,8 @@ Library
- Issue #13815: TarFile.extractfile() now returns io.BufferedReader objects.
- Issue #14768: os.path.expanduser('~/a') doesn't works correctly when HOME is '/'.
- Issue #14371: Support bzip2 in zipfile module. Patch by Serhiy Storchaka.
- Issue #13183: Fix pdb skipping frames after hitting a breakpoint and running