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

This commit is contained in:
Jesus Cea 2012-05-10 05:01:11 +02:00
parent 95f42a86dd
commit f2011e3e49
4 changed files with 6 additions and 2 deletions

View File

@ -267,8 +267,8 @@ def expanduser(path):
except KeyError:
return path
userhome = pwent.pw_dir
userhome = userhome.rstrip('/') or userhome
return userhome + path[i:]
userhome = userhome.rstrip('/')
return (userhome + path[i:]) or '/'
# Expand paths containing shell variable substitutions.

View File

@ -201,6 +201,7 @@ class PosixPathTest(unittest.TestCase):
with test_support.EnvironmentVarGuard() as env:
env['HOME'] = '/'
self.assertEqual(posixpath.expanduser("~"), "/")
self.assertEqual(posixpath.expanduser("~/foo"), "/foo")
def test_normpath(self):
self.assertEqual(posixpath.normpath(""), ".")

View File

@ -274,6 +274,7 @@ Doug Fort
John Fouhy
Martin Franklin
Robin Friedrich
Bradley Froehle
Ivan Frohne
Jim Fulton
Tadayoshi Funaba

View File

@ -60,6 +60,8 @@ Core and Builtins
Library
-------
- Issue #14768: os.path.expanduser('~/a') doesn't works correctly when HOME is '/'.
- Issue #13183: Fix pdb skipping frames after hitting a breakpoint and running
step. Patch by Xavier de Gaye.