From 3c629d6e96037d1f8aeeecaf43fef33159f2be89 Mon Sep 17 00:00:00 2001 From: Hood Chatham Date: Thu, 17 Jul 2025 17:39:01 +0200 Subject: [PATCH] gh-127146: Emscripten: Set umask to zero in python.sh (GH-136740) Clears the umask used during a test of pydoc.apropos when testing on Emscripten. This is to work around a known issue in Emscripten; but it's not clear if the chmod call that is causing the problem is actually testing anything of significance. (cherry picked from commit 22af5d35a620ee44393853036a8450ceb047688e) Co-authored-by: Hood Chatham --- Lib/test/test_pydoc/test_pydoc.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Lib/test/test_pydoc/test_pydoc.py b/Lib/test/test_pydoc/test_pydoc.py index 281b24eaa36b80..f5ba5e1eb754be 100644 --- a/Lib/test/test_pydoc/test_pydoc.py +++ b/Lib/test/test_pydoc/test_pydoc.py @@ -1303,6 +1303,11 @@ def test_apropos_with_unreadable_dir(self): @os_helper.skip_unless_working_chmod def test_apropos_empty_doc(self): pkgdir = os.path.join(TESTFN, 'walkpkg') + if support.is_emscripten: + # Emscripten's readdir implementation is buggy on directories + # with read permission but no execute permission. + old_umask = os.umask(0) + self.addCleanup(os.umask, old_umask) os.mkdir(pkgdir) self.addCleanup(rmtree, pkgdir) init_path = os.path.join(pkgdir, '__init__.py')