]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-109748: Fix venv test_zippath_from_non_installed_posix() (#109872)
authorVictor Stinner <vstinner@python.org>
Mon, 25 Sep 2023 23:16:30 +0000 (01:16 +0200)
committerGitHub <noreply@github.com>
Mon, 25 Sep 2023 23:16:30 +0000 (23:16 +0000)
Fix test_zippath_from_non_installed_posix() of test_venv: don't copy
__pycache__/ sub-directories, because they can be modified by other
Python tests running in parallel.

Lib/test/test_venv.py
Misc/NEWS.d/next/Tests/2023-09-26-00-49-18.gh-issue-109748.nxlT1i.rst [new file with mode: 0644]

index a894bb10bd04dacb57500a47ebb421e7d0394068..eb83aa39425515572798bb6b60cb798f19be6da0 100644 (file)
@@ -559,6 +559,13 @@ class BasicTest(BaseTest):
                                     platlibdir,
                                     stdlib_zip)
         additional_pythonpath_for_non_installed = []
+
+        # gh-109748: Don't copy __pycache__/ sub-directories, because they can
+        # be modified by other Python tests running in parallel.
+        ignored_names = {'__pycache__'}
+        def ignore_pycache(src, names):
+            return ignored_names
+
         # Copy stdlib files to the non-installed python so venv can
         # correctly calculate the prefix.
         for eachpath in sys.path:
@@ -575,7 +582,8 @@ class BasicTest(BaseTest):
                     if os.path.isfile(fn):
                         shutil.copy(fn, libdir)
                     elif os.path.isdir(fn):
-                        shutil.copytree(fn, os.path.join(libdir, name))
+                        shutil.copytree(fn, os.path.join(libdir, name),
+                                        ignore=ignore_pycache)
             else:
                 additional_pythonpath_for_non_installed.append(
                     eachpath)
diff --git a/Misc/NEWS.d/next/Tests/2023-09-26-00-49-18.gh-issue-109748.nxlT1i.rst b/Misc/NEWS.d/next/Tests/2023-09-26-00-49-18.gh-issue-109748.nxlT1i.rst
new file mode 100644 (file)
index 0000000..840366b
--- /dev/null
@@ -0,0 +1,3 @@
+Fix ``test_zippath_from_non_installed_posix()`` of test_venv: don't copy
+``__pycache__/`` sub-directories, because they can be modified by other Python
+tests running in parallel. Patch by Victor Stinner.