summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2023-09-30 18:46:37 (GMT)
committerGitHub <noreply@github.com>2023-09-30 18:46:37 (GMT)
commit080f5b98d1eac67abc13fe9654ff8a3feeef55ea (patch)
treea0117269b8a438123c13d868a12194709b292c22
parentcb1f49991e86d773f6d36a49b81be12abf811057 (diff)
downloadcpython-080f5b98d1eac67abc13fe9654ff8a3feeef55ea.zip
cpython-080f5b98d1eac67abc13fe9654ff8a3feeef55ea.tar.gz
cpython-080f5b98d1eac67abc13fe9654ff8a3feeef55ea.tar.bz2
[3.11] gh-109748: Fix again venv test_zippath_from_non_installed_posix() (GH-110149) (#110153)
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>
-rw-r--r--Lib/shutil.py2
-rw-r--r--Lib/test/test_support.py2
-rw-r--r--Lib/test/test_venv.py6
3 files changed, 7 insertions, 3 deletions
diff --git a/Lib/shutil.py b/Lib/shutil.py
index 1c3a75d..d108986 100644
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -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 = []
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index 2efdbd2..01ba88c 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -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)
diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py
index 884ac3a..eb9227a 100644
--- a/Lib/test/test_venv.py
+++ b/Lib/test/test_venv.py
@@ -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)