diff options
author | Victor Stinner <vstinner@python.org> | 2023-09-27 10:32:12 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-27 10:32:12 (GMT) |
commit | b89ed9df39851348fbb1552294644f99f6b17d2c (patch) | |
tree | 71b0a04c09ee2ed373dff487f7ce64da965c426f /Lib | |
parent | 91fb8daa2494df4dd6a841ca8c742a03175c7ecd (diff) | |
download | cpython-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.py | 12 | ||||
-rw-r--r-- | Lib/test/pythoninfo.py | 1 | ||||
-rw-r--r-- | Lib/test/test_support.py | 7 |
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__'} |