summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-09-27 10:32:12 (GMT)
committerGitHub <noreply@github.com>2023-09-27 10:32:12 (GMT)
commitb89ed9df39851348fbb1552294644f99f6b17d2c (patch)
tree71b0a04c09ee2ed373dff487f7ce64da965c426f /Lib
parent91fb8daa2494df4dd6a841ca8c742a03175c7ecd (diff)
downloadcpython-b89ed9df39851348fbb1552294644f99f6b17d2c.zip
cpython-b89ed9df39851348fbb1552294644f99f6b17d2c.tar.gz
cpython-b89ed9df39851348fbb1552294644f99f6b17d2c.tar.bz2
gh-109615: Fix support test_copy_python_src_ignore() (#109958)
Fix the test when run on an installed Python: use "abs_srcdir" of sysconfig, and skip the test if the Python source code cannot be found. * Tools/patchcheck/patchcheck.py, Tools/freeze/test/freeze.py and Lib/test/libregrtest/utils.py now first try to get "abs_srcdir" from sysconfig, before getting "srcdir" from sysconfig. * test.pythoninfo logs sysconfig "abs_srcdir".
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/libregrtest/utils.py12
-rw-r--r--Lib/test/pythoninfo.py1
-rw-r--r--Lib/test/test_support.py7
3 files changed, 14 insertions, 6 deletions
diff --git a/Lib/test/libregrtest/utils.py b/Lib/test/libregrtest/utils.py
index 7692217..bedf9a5 100644
--- a/Lib/test/libregrtest/utils.py
+++ b/Lib/test/libregrtest/utils.py
@@ -355,11 +355,13 @@ def get_temp_dir(tmp_dir: StrPath | None = None) -> StrPath:
if not support.is_wasi:
tmp_dir = sysconfig.get_config_var('abs_builddir')
if tmp_dir is None:
- # gh-74470: On Windows, only srcdir is available. Using
- # abs_builddir mostly matters on UNIX when building Python
- # out of the source tree, especially when the source tree
- # is read only.
- tmp_dir = sysconfig.get_config_var('srcdir')
+ tmp_dir = sysconfig.get_config_var('abs_srcdir')
+ if not tmp_dir:
+ # gh-74470: On Windows, only srcdir is available. Using
+ # abs_builddir mostly matters on UNIX when building
+ # Python out of the source tree, especially when the
+ # source tree is read only.
+ tmp_dir = sysconfig.get_config_var('srcdir')
tmp_dir = os.path.join(tmp_dir, 'build')
else:
# WASI platform
diff --git a/Lib/test/pythoninfo.py b/Lib/test/pythoninfo.py
index c372efa..0e7528e 100644
--- a/Lib/test/pythoninfo.py
+++ b/Lib/test/pythoninfo.py
@@ -520,6 +520,7 @@ def collect_sysconfig(info_add):
'SHELL',
'SOABI',
'abs_builddir',
+ 'abs_srcdir',
'prefix',
'srcdir',
):
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index af38db5..134ce24 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -802,8 +802,13 @@ class TestSupport(unittest.TestCase):
support.real_max_memuse = old_real_max_memuse
def test_copy_python_src_ignore(self):
- src_dir = sysconfig.get_config_var('srcdir')
+ src_dir = sysconfig.get_config_var('abs_srcdir')
+ if not src_dir:
+ src_dir = sysconfig.get_config_var('srcdir')
src_dir = os.path.abspath(src_dir)
+ if not os.path.exists(src_dir):
+ self.skipTest(f"cannot access Python source code directory:"
+ f" {src_dir!r}")
ignored = {'.git', '__pycache__'}