From e2c097ebdee447ded1109f99a235e65aa3533bf8 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Thu, 18 Jan 2024 02:52:42 +0200 Subject: 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 --- Lib/test/test_subprocess.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'Lib/test/test_subprocess.py') 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() -- cgit v1.2.3