]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.11] gh-109748: Fix again venv test_zippath_from_non_installed_posix() (GH-110149...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sat, 30 Sep 2023 18:46:37 +0000 (11:46 -0700)
committerGitHub <noreply@github.com>
Sat, 30 Sep 2023 18:46:37 +0000 (18:46 +0000)
gh-109748: Fix again venv test_zippath_from_non_installed_posix() (GH-110149)

Call also copy_python_src_ignore() on listdir() names.

shutil.copytree(): replace set() with an empty tuple. An empty tuple
becomes a constant in the compiler and checking if an item is in an
empty tuple is cheap.
(cherry picked from commit 0def8c712bb6f66f1081cab71deb3681566b846d)

Co-authored-by: Victor Stinner <vstinner@python.org>
Lib/shutil.py
Lib/test/test_support.py
Lib/test/test_venv.py

index 1c3a75da55ba5b3983619780f8b016c12ab05476..d108986d1302678b18e5956bdff6742999df213d 100644 (file)
@@ -454,7 +454,7 @@ def _copytree(entries, src, dst, symlinks, ignore, copy_function,
     if ignore is not None:
         ignored_names = ignore(os.fspath(src), [x.name for x in entries])
     else:
-        ignored_names = set()
+        ignored_names = ()
 
     os.makedirs(dst, exist_ok=dirs_exist_ok)
     errors = []
index 2efdbd22d90e2e9259ca276d97570a02941f879c..01ba88ce42c5f6e6bf0249fba2f1dd7a37a71c94 100644 (file)
@@ -818,7 +818,7 @@ class TestSupport(unittest.TestCase):
         self.assertEqual(support.copy_python_src_ignore(path, os.listdir(path)),
                          ignored | {'build', 'venv'})
 
-        # An other directory
+        # Another directory
         path = os.path.join(src_dir, 'Objects')
         self.assertEqual(support.copy_python_src_ignore(path, os.listdir(path)),
                          ignored)
index 884ac3ac567c07cfbf538e7400b81f2615098b34..eb9227a3b703794db7e538490e6060d05f8a0436 100644 (file)
@@ -572,7 +572,11 @@ class BasicTest(BaseTest):
                         eachpath,
                         os.path.join(non_installed_dir, platlibdir))
             elif os.path.isfile(os.path.join(eachpath, "os.py")):
-                for name in os.listdir(eachpath):
+                names = os.listdir(eachpath)
+                ignored_names = copy_python_src_ignore(eachpath, names)
+                for name in names:
+                    if name in ignored_names:
+                        continue
                     if name == "site-packages":
                         continue
                     fn = os.path.join(eachpath, name)