"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))
--- /dev/null
+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.