https://github.com/python/cpython/commit/da46947470013f3e36221bfc6b73c10725a95c8b
commit: da46947470013f3e36221bfc6b73c10725a95c8b
branch: main
author: Serhiy Storchaka <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2026-07-24T15:20:21+03:00
summary:

gh-154592: Fix test_peg_generator in non-UTF-8 locales with a non-ASCII work 
dir (GH-154593)

Co-authored-by: Claude Opus 4.8 <[email protected]>

files:
M Lib/test/test_peg_generator/test_c_parser.py

diff --git a/Lib/test/test_peg_generator/test_c_parser.py 
b/Lib/test/test_peg_generator/test_c_parser.py
index 3500f229b1b3863..dc887693840a007 100644
--- a/Lib/test/test_peg_generator/test_c_parser.py
+++ b/Lib/test/test_peg_generator/test_c_parser.py
@@ -100,14 +100,17 @@ def setUpClass(cls):
 
         with contextlib.ExitStack() as stack:
             python_exe = 
stack.enter_context(support.setup_venv_with_pip_setuptools("venv"))
-            platlib_path = subprocess.check_output(
-                [python_exe, "-c", "import sysconfig; 
print(sysconfig.get_path('platlib'))"],
-                text=True,
-            ).strip()
-            purelib_path = subprocess.check_output(
-                [python_exe, "-c", "import sysconfig; 
print(sysconfig.get_path('purelib'))"],
-                text=True,
-            ).strip()
+
+            def get_sysconfig_path(name):
+                # Force UTF-8 to emit the non-ASCII venv path in any locale.
+                return subprocess.check_output(
+                    [python_exe, "-X", "utf8", "-c",
+                     f"import sysconfig; print(sysconfig.get_path({name!r}))"],
+                    encoding="utf-8",
+                ).strip()
+
+            platlib_path = get_sysconfig_path("platlib")
+            purelib_path = get_sysconfig_path("purelib")
             stack.enter_context(import_helper.DirsOnSysPath(platlib_path, 
purelib_path))
             cls.addClassCleanup(stack.pop_all().close)
 

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to