[Python-checkins] bpo-44860: Update test_sysconfig for posix_user platlib (GH-28235)

vstinner webhook-mailer at python.org
Thu Sep 9 05:02:59 EDT 2021


https://github.com/python/cpython/commit/49acac00c08838d8080ce00d02c05284b94f8fb2
commit: 49acac00c08838d8080ce00d02c05284b94f8fb2
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2021-09-09T11:02:48+02:00
summary:

bpo-44860: Update test_sysconfig for posix_user platlib (GH-28235)

Update test_sysconfig.test_user_similar() for the posix_user scheme:
"platlib" doesn't use sys.platlibdir.

files:
A Misc/NEWS.d/next/Tests/2021-09-08-13-01-37.bpo-44860.qXd0kx.rst
M Lib/test/pythoninfo.py
M Lib/test/test_sysconfig.py

diff --git a/Lib/test/pythoninfo.py b/Lib/test/pythoninfo.py
index 278dfe7f7da7a..39ee9e1d769f8 100644
--- a/Lib/test/pythoninfo.py
+++ b/Lib/test/pythoninfo.py
@@ -96,6 +96,7 @@ def collect_sys(info_add):
         'maxunicode',
         'path',
         'platform',
+        'platlibdir',
         'prefix',
         'thread_info',
         'version',
diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py
index b8b9add36d766..9408657c91886 100644
--- a/Lib/test/test_sysconfig.py
+++ b/Lib/test/test_sysconfig.py
@@ -296,7 +296,17 @@ def test_user_similar(self):
                 base = base.replace(sys.base_prefix, sys.prefix)
             if HAS_USER_BASE:
                 user_path = get_path(name, 'posix_user')
-                self.assertEqual(user_path, global_path.replace(base, user, 1))
+                expected = global_path.replace(base, user, 1)
+                # bpo-44860: platlib of posix_user doesn't use sys.platlibdir,
+                # whereas posix_prefix does.
+                if name == 'platlib':
+                    # Replace "/lib64/python3.11/site-packages" suffix
+                    # with "/lib/python3.11/site-packages".
+                    py_version_short = sysconfig.get_python_version()
+                    suffix = f'python{py_version_short}/site-packages'
+                    expected = expected.replace(f'/{sys.platlibdir}/{suffix}',
+                                                f'/lib/{suffix}')
+                self.assertEqual(user_path, expected)
 
     def test_main(self):
         # just making sure _main() runs and returns things in the stdout
diff --git a/Misc/NEWS.d/next/Tests/2021-09-08-13-01-37.bpo-44860.qXd0kx.rst b/Misc/NEWS.d/next/Tests/2021-09-08-13-01-37.bpo-44860.qXd0kx.rst
new file mode 100644
index 0000000000000..153a9c55733fb
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2021-09-08-13-01-37.bpo-44860.qXd0kx.rst
@@ -0,0 +1,2 @@
+Update ``test_sysconfig.test_user_similar()`` for the posix_user scheme:
+``platlib`` doesn't use :data:`sys.platlibdir`. Patch by Victor Stinner.



More information about the Python-checkins mailing list