diff options
author | Victor Stinner <vstinner@python.org> | 2023-09-30 18:23:26 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-30 18:23:26 (GMT) |
commit | 0def8c712bb6f66f1081cab71deb3681566b846d (patch) | |
tree | 0da50e62a5977a0963825cfc70159deb8a367394 | |
parent | 74e425ec186dde6bcfb172616fe8f35ccb5a09bb (diff) | |
download | cpython-0def8c712bb6f66f1081cab71deb3681566b846d.zip cpython-0def8c712bb6f66f1081cab71deb3681566b846d.tar.gz cpython-0def8c712bb6f66f1081cab71deb3681566b846d.tar.bz2 |
gh-109748: Fix again venv test_zippath_from_non_installed_posix() (#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.
-rw-r--r-- | Lib/shutil.py | 2 | ||||
-rw-r--r-- | Lib/test/test_support.py | 2 | ||||
-rw-r--r-- | Lib/test/test_venv.py | 6 |
3 files changed, 7 insertions, 3 deletions
diff --git a/Lib/shutil.py b/Lib/shutil.py index b37bd08..b903f13 100644 --- a/Lib/shutil.py +++ b/Lib/shutil.py @@ -481,7 +481,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 = [] diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py index 902bec7..97de816 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -832,7 +832,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) diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py index 0ffe3e1..890672c 100644 --- a/Lib/test/test_venv.py +++ b/Lib/test/test_venv.py @@ -569,7 +569,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) |