summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2024-07-01 15:49:03 (GMT)
committerGitHub <noreply@github.com>2024-07-01 15:49:03 (GMT)
commit02cb5fdee391670d63b2fc0a92ca9b36a32ac95a (patch)
tree8c7e7ddce302dbf424843461dcba0ced431123b8
parent8a5176772c932d764daa83c50b99fe0805260b2c (diff)
downloadcpython-02cb5fdee391670d63b2fc0a92ca9b36a32ac95a.zip
cpython-02cb5fdee391670d63b2fc0a92ca9b36a32ac95a.tar.gz
cpython-02cb5fdee391670d63b2fc0a92ca9b36a32ac95a.tar.bz2
gh-121200: Fix test_expanduser_pwd2() of test_posixpath (#121228)
Call getpwnam() to get pw_dir, since it can be different than getpwall() pw_dir.
-rw-r--r--Lib/test/test_posixpath.py11
-rw-r--r--Misc/NEWS.d/next/Tests/2024-07-01-16-15-06.gh-issue-121200.4Pc-gc.rst3
2 files changed, 11 insertions, 3 deletions
diff --git a/Lib/test/test_posixpath.py b/Lib/test/test_posixpath.py
index 9f36a4c..fb714fd 100644
--- a/Lib/test/test_posixpath.py
+++ b/Lib/test/test_posixpath.py
@@ -359,11 +359,16 @@ class PosixPathTest(unittest.TestCase):
"no home directory on VxWorks")
def test_expanduser_pwd2(self):
pwd = import_helper.import_module('pwd')
- for entry in pwd.getpwall():
- name = entry.pw_name
+ for all_entry in pwd.getpwall():
+ name = all_entry.pw_name
+
+ # gh-121200: pw_dir can be different between getpwall() and
+ # getpwnam(), so use getpwnam() pw_dir as expanduser() does.
+ entry = pwd.getpwnam(name)
home = entry.pw_dir
home = home.rstrip('/') or '/'
- with self.subTest(pwd=entry):
+
+ with self.subTest(all_entry=all_entry, entry=entry):
self.assertEqual(posixpath.expanduser('~' + name), home)
self.assertEqual(posixpath.expanduser(os.fsencode('~' + name)),
os.fsencode(home))
diff --git a/Misc/NEWS.d/next/Tests/2024-07-01-16-15-06.gh-issue-121200.4Pc-gc.rst b/Misc/NEWS.d/next/Tests/2024-07-01-16-15-06.gh-issue-121200.4Pc-gc.rst
new file mode 100644
index 0000000..01e0d9b
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2024-07-01-16-15-06.gh-issue-121200.4Pc-gc.rst
@@ -0,0 +1,3 @@
+Fix ``test_expanduser_pwd2()`` of ``test_posixpath``. Call ``getpwnam()``
+to get ``pw_dir``, since it can be different than ``getpwall()`` ``pw_dir``.
+Patch by Victor Stinner.