60 lines
2.3 KiB
Diff
60 lines
2.3 KiB
Diff
From c70f250a25f240cb6595a8eb8ff80389ae472e45 Mon Sep 17 00:00:00 2001
|
|
From: Victor Stinner <vstinner@python.org>
|
|
Date: Thu, 5 Mar 2020 14:28:40 +0100
|
|
Subject: [PATCH] bpo-39855: Fix test_subprocess if nobody user doesn't exist
|
|
(GH-18781)
|
|
|
|
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.
|
|
|
|
Conflict:NA
|
|
Reference:https://github.com/python/cpython/commit/f7b5d419bf871d9cc898982c7b6b4c043f7d5e9d
|
|
|
|
Signed-off-by: hanxinke <hanxinke@huawei.com>
|
|
---
|
|
Lib/test/test_subprocess.py | 9 +++++++--
|
|
.../next/Tests/2020-03-04-23-03-01.bpo-39855.Ql5xv8.rst | 3 +++
|
|
2 files changed, 10 insertions(+), 2 deletions(-)
|
|
create mode 100644 Misc/NEWS.d/next/Tests/2020-03-04-23-03-01.bpo-39855.Ql5xv8.rst
|
|
|
|
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
|
|
index ac45436..bced1e7 100644
|
|
--- a/Lib/test/test_subprocess.py
|
|
+++ b/Lib/test/test_subprocess.py
|
|
@@ -1725,7 +1725,12 @@ class POSIXProcessTestCase(BaseTestCase):
|
|
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
|
|
@@ -1753,7 +1758,7 @@ class POSIXProcessTestCase(BaseTestCase):
|
|
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)
|
|
|
|
diff --git a/Misc/NEWS.d/next/Tests/2020-03-04-23-03-01.bpo-39855.Ql5xv8.rst b/Misc/NEWS.d/next/Tests/2020-03-04-23-03-01.bpo-39855.Ql5xv8.rst
|
|
new file mode 100644
|
|
index 0000000..0601241
|
|
--- /dev/null
|
|
+++ b/Misc/NEWS.d/next/Tests/2020-03-04-23-03-01.bpo-39855.Ql5xv8.rst
|
|
@@ -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.
|
|
--
|
|
2.23.0
|
|
|