diff options
author | Gregory P. Smith <greg@krypto.org> | 2019-09-13 13:43:35 (GMT) |
---|---|---|
committer | T. Wouters <thomas@python.org> | 2019-09-13 13:43:35 (GMT) |
commit | 693aa80a434590ea7dcd35c000209e53d01b9425 (patch) | |
tree | 5619693fc50c4955bd6f59d7c1f1d2e66f99a2e9 /Lib/test/test_subprocess.py | |
parent | 0519d497b04b252f50dfff9101fb7f4b9e33f1c4 (diff) | |
download | cpython-693aa80a434590ea7dcd35c000209e53d01b9425.zip cpython-693aa80a434590ea7dcd35c000209e53d01b9425.tar.gz cpython-693aa80a434590ea7dcd35c000209e53d01b9425.tar.bz2 |
bpo-36046: Fix buildbot failures (GH-16091)
Varying user/group/permission check needs on platforms.
Diffstat (limited to 'Lib/test/test_subprocess.py')
-rw-r--r-- | Lib/test/test_subprocess.py | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py index f107022..42f376c 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -1588,6 +1588,18 @@ class RunFuncTestCase(BaseTestCase): f"{stacks}```") +def _get_test_grp_name(): + for name_group in ('staff', 'nogroup', 'grp'): + if grp: + try: + grp.getgrnam(name_group) + except KeyError: + continue + return name_group + else: + raise unittest.SkipTest('No identified group name to use for this test on this platform.') + + @unittest.skipIf(mswindows, "POSIX specific tests") class POSIXProcessTestCase(BaseTestCase): @@ -1762,8 +1774,10 @@ class POSIXProcessTestCase(BaseTestCase): [sys.executable, "-c", "import os; print(os.getuid())"], user=user) + except PermissionError: # errno.EACCES + pass except OSError as e: - if e.errno != errno.EPERM: + if e.errno not in (errno.EACCES, errno.EPERM): raise else: if isinstance(user, str): @@ -1789,7 +1803,7 @@ class POSIXProcessTestCase(BaseTestCase): def test_group(self): gid = os.getegid() group_list = [65534 if gid != 65534 else 65533] - name_group = "nogroup" if sys.platform != 'darwin' else "staff" + name_group = _get_test_grp_name() if grp is not None: group_list.append(name_group) @@ -1830,7 +1844,7 @@ class POSIXProcessTestCase(BaseTestCase): def test_extra_groups(self): gid = os.getegid() group_list = [65534 if gid != 65534 else 65533] - name_group = "nogroup" if sys.platform != 'darwin' else "staff" + name_group = _get_test_grp_name() perm_error = False if grp is not None: |