[Python-checkins] gh-90473: Fix more tests on platforms without umask (GH-95164)

miss-islington webhook-mailer at python.org
Sat Jul 23 06:51:34 EDT 2022


https://github.com/python/cpython/commit/0d688bd2b6f572afb9783c3520345c9accc0ca6c
commit: 0d688bd2b6f572afb9783c3520345c9accc0ca6c
branch: 3.11
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: miss-islington <31488909+miss-islington at users.noreply.github.com>
date: 2022年07月23日T03:51:29-07:00
summary:
gh-90473: Fix more tests on platforms without umask (GH-95164)
(cherry picked from commit 68393248947adaa61962cd44e9d49c44017ba94f)
Co-authored-by: Christian Heimes <christian at python.org>
files:
M Lib/distutils/tests/test_dir_util.py
M Lib/test/support/os_helper.py
M Lib/test/test_os.py
diff --git a/Lib/distutils/tests/test_dir_util.py b/Lib/distutils/tests/test_dir_util.py
index f3ba0ee33b4bc..ebd89f320dca8 100644
--- a/Lib/distutils/tests/test_dir_util.py
+++ b/Lib/distutils/tests/test_dir_util.py
@@ -11,7 +11,7 @@
 
 from distutils import log
 from distutils.tests import support
-from test.support import run_unittest, is_emscripten
+from test.support import run_unittest, is_emscripten, is_wasi
 
 
 class DirUtilTestCase(support.TempdirManager, unittest.TestCase):
@@ -55,7 +55,10 @@ def test_mkpath_remove_tree_verbosity(self):
 
 @unittest.skipIf(sys.platform.startswith('win'),
 "This test is only appropriate for POSIX-like systems.")
- @unittest.skipIf(is_emscripten, "Emscripten's umask is a stub.")
+ @unittest.skipIf(
+ is_emscripten or is_wasi,
+ "Emscripten's/WASI's umask is a stub."
+ )
 def test_mkpath_with_custom_mode(self):
 # Get and set the current umask value for testing mode bits.
 umask = os.umask(0o002)
diff --git a/Lib/test/support/os_helper.py b/Lib/test/support/os_helper.py
index 1ac8a946060e7..f599cc752196e 100644
--- a/Lib/test/support/os_helper.py
+++ b/Lib/test/support/os_helper.py
@@ -653,6 +653,11 @@ def temp_umask(umask):
 yield
 finally:
 os.umask(oldmask)
+else:
+ @contextlib.contextmanager
+ def temp_umask(umask):
+ """no-op on platforms without umask()"""
+ yield
 
 
 class EnvironmentVarGuard(collections.abc.MutableMapping):
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 29f69a8f475b2..9970b234b4831 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -1607,6 +1607,10 @@ def test_mode(self):
 self.assertEqual(os.stat(path).st_mode & 0o777, 0o555)
 self.assertEqual(os.stat(parent).st_mode & 0o777, 0o775)
 
+ @unittest.skipIf(
+ support.is_emscripten or support.is_wasi,
+ "Emscripten's/WASI's umask is a stub."
+ )
 def test_exist_ok_existing_directory(self):
 path = os.path.join(os_helper.TESTFN, 'dir1')
 mode = 0o777
@@ -1621,6 +1625,10 @@ def test_exist_ok_existing_directory(self):
 # Issue #25583: A drive root could raise PermissionError on Windows
 os.makedirs(os.path.abspath('/'), exist_ok=True)
 
+ @unittest.skipIf(
+ support.is_emscripten or support.is_wasi,
+ "Emscripten's/WASI's umask is a stub."
+ )
 def test_exist_ok_s_isgid_directory(self):
 path = os.path.join(os_helper.TESTFN, 'dir1')
 S_ISGID = stat.S_ISGID


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /