Skip to content

Commit

Permalink
bpo-39855: Fix test_subprocess if nobody user doesn't exist (GH-18781)
Browse files Browse the repository at this point in the history
test_subprocess.test_user() now skips the test on an user name if the
user name doesn't exist. For example, skip the test if the user
"nobody" doesn't exist on Linux.
  • Loading branch information
vstinner committed Mar 5, 2020
1 parent 85cf1d5 commit f7b5d41
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
9 changes: 7 additions & 2 deletions Lib/test/test_subprocess.py
Original file line number Diff line number Diff line change
Expand Up @@ -1791,7 +1791,12 @@ def test_user(self):
name_uid = "nobody" if sys.platform != 'darwin' else "unknown"

if pwd is not None:
test_users.append(name_uid)
try:
pwd.getpwnam(name_uid)
test_users.append(name_uid)
except KeyError:
# unknown user name
name_uid = None

for user in test_users:
# posix_spawn() may be used with close_fds=False
Expand Down Expand Up @@ -1819,7 +1824,7 @@ def test_user(self):
with self.assertRaises(ValueError):
subprocess.check_call(ZERO_RETURN_CMD, user=-1)

if pwd is None:
if pwd is None and name_uid is not None:
with self.assertRaises(ValueError):
subprocess.check_call(ZERO_RETURN_CMD, user=name_uid)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
test_subprocess.test_user() now skips the test on an user name if the user
name doesn't exist. For example, skip the test if the user "nobody" doesn't
exist on Linux.

0 comments on commit f7b5d41

Please sign in to comment.