summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Lib/distutils/tests/test_dir_util.py7
-rw-r--r--Lib/test/support/os_helper.py5
-rw-r--r--Lib/test/test_os.py8
3 files changed, 18 insertions, 2 deletions
diff --git a/Lib/distutils/tests/test_dir_util.py b/Lib/distutils/tests/test_dir_util.py
index f3ba0ee33b..ebd89f320d 100644
--- a/Lib/distutils/tests/test_dir_util.py
+++ b/Lib/distutils/tests/test_dir_util.py
@@ -11,7 +11,7 @@ from distutils.dir_util import (mkpath, remove_tree, create_tree, copy_tree,
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 @@ class DirUtilTestCase(support.TempdirManager, unittest.TestCase):
@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 61d12f59e4..f37a442aa0 100644
--- a/Lib/test/support/os_helper.py
+++ b/Lib/test/support/os_helper.py
@@ -658,6 +658,11 @@ if hasattr(os, "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 29f69a8f47..9970b234b4 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -1607,6 +1607,10 @@ class MakedirTests(unittest.TestCase):
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 @@ class MakedirTests(unittest.TestCase):
# 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