aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_subprocess.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2024-01-18 02:52:42 +0200
committerGitHub <noreply@github.com>2024-01-17 16:52:42 -0800
commite2c097ebdee447ded1109f99a235e65aa3533bf8 (patch)
tree7e6efa81cfe3b6fd7e010e717e2f1990c40eeddc /Lib/test/test_subprocess.py
parent4c7e09d0129dafddba58979ced9580f856f65efa (diff)
downloadcpython-e2c097ebdee447ded1109f99a235e65aa3533bf8.tar.gz
cpython-e2c097ebdee447ded1109f99a235e65aa3533bf8.zip
gh-104522: Fix OSError raised when run a subprocess (#114195)
Only set filename to cwd if it was caused by failed chdir(cwd). _fork_exec() now returns "noexec:chdir" for failed chdir(cwd). Co-authored-by: Robert O'Shea <PurityLake@users.noreply.github.com>
Diffstat (limited to 'Lib/test/test_subprocess.py')
-rw-r--r--Lib/test/test_subprocess.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index 944a7de4210..12b88294a2d 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -2017,11 +2017,12 @@ class POSIXProcessTestCase(BaseTestCase):
"import os; print(os.getuid())"],
user=user,
close_fds=close_fds)
- except PermissionError: # (EACCES, EPERM)
- pass
+ except PermissionError as e: # (EACCES, EPERM)
+ self.assertIsNone(e.filename)
except OSError as e:
if e.errno not in (errno.EACCES, errno.EPERM):
raise
+ self.assertIsNone(e.filename)
else:
if isinstance(user, str):
user_uid = pwd.getpwnam(user).pw_uid
@@ -2065,8 +2066,8 @@ class POSIXProcessTestCase(BaseTestCase):
"import os; print(os.getgid())"],
group=group,
close_fds=close_fds)
- except PermissionError: # (EACCES, EPERM)
- pass
+ except PermissionError as e: # (EACCES, EPERM)
+ self.assertIsNone(e.filename)
else:
if isinstance(group, str):
group_gid = grp.getgrnam(group).gr_gid
@@ -2114,7 +2115,8 @@ class POSIXProcessTestCase(BaseTestCase):
[sys.executable, "-c",
"import os, sys, json; json.dump(os.getgroups(), sys.stdout)"],
extra_groups=group_list)
- except PermissionError:
+ except PermissionError as e:
+ self.assertIsNone(e.filename)
self.skipTest("setgroup() EPERM; this test may require root.")
else:
parent_groups = os.getgroups()