From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Mon, 25 Sep 2023 23:41:32 +0000 (-0700) Subject: [3.11] gh-109748: Fix venv test_zippath_from_non_installed_posix() (GH-109872) (... X-Git-Tag: v3.11.6~47 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=358282e9655a4baf09aa876531fa56f3b5810ddf;p=thirdparty%2FPython%2Fcpython.git [3.11] gh-109748: Fix venv test_zippath_from_non_installed_posix() (GH-109872) (#109874) gh-109748: Fix venv test_zippath_from_non_installed_posix() (GH-109872) 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. (cherry picked from commit 25bb266fc876b344e31e0b5634a4db94912c1aba) Co-authored-by: Victor Stinner --- diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py index c7efff549b86..a37c6b7163f2 100644 --- a/Lib/test/test_venv.py +++ b/Lib/test/test_venv.py @@ -562,6 +562,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: @@ -578,7 +585,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 index 000000000000..840366ba8d16 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2023-09-26-00-49-18.gh-issue-109748.nxlT1i.rst @@ -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.