Jesús Cea avatar Jesús Cea committed ce39a4e Merge

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

Comments (0)

Files changed (4)

         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.

Lib/test/test_posixpath.py

             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
 Martin Franklin
 Bruce Frederiksen
 Robin Friedrich
+Bradley Froehle
 Ivan Frohne
 Matthias Fuchs
 Jim Fulton
 
 - 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
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.