]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.13] gh-154592: Fix test_peg_generator in non-UTF-8 locales with a non-ASCII work... 3.13
authorSerhiy Storchaka <storchaka@gmail.com>
Sun, 26 Jul 2026 19:07:44 +0000 (22:07 +0300)
committerGitHub <noreply@github.com>
Sun, 26 Jul 2026 19:07:44 +0000 (19:07 +0000)
(cherry picked from commit da46947470013f3e36221bfc6b73c10725a95c8b)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Lib/test/test_peg_generator/test_c_parser.py

index 1095e7303c188f61ef3ee29532ab1a027131044d..2e9cef99dd355c7adad18c2062fca4ffb156be80 100644 (file)
@@ -100,10 +100,16 @@ class TestCParser(unittest.TestCase):
 
         with contextlib.ExitStack() as stack:
             python_exe = stack.enter_context(support.setup_venv_with_pip_setuptools("venv"))
-            sitepackages = subprocess.check_output(
-                [python_exe, "-c", "import sysconfig; print(sysconfig.get_path('platlib'))"],
-                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()
+
+            sitepackages = get_sysconfig_path("platlib")
             stack.enter_context(import_helper.DirsOnSysPath(sitepackages))
             cls.addClassCleanup(stack.pop_all().close)