]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-91904: Fix setting envvar PYTHONREGRTEST_UNICODE_GUARD (GH-91905)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 25 Apr 2022 15:03:47 +0000 (08:03 -0700)
committerGitHub <noreply@github.com>
Mon, 25 Apr 2022 15:03:47 +0000 (08:03 -0700)
It always failed on non-UTF-8 locale and prevented running regrtests.
(cherry picked from commit 54d068adfbf2b822bcbf90dac9b3f6684cec0f99)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Lib/test/libregrtest/setup.py
Lib/test/test_regrtest.py
Misc/NEWS.d/next/Tests/2022-04-25-11-16-36.gh-issue-91904.13Uvrz.rst [new file with mode: 0644]

index b79175944d2bdf3b7bb8e37d4a422f873a31eac4..0bfd644bb3179d3d157dd0a2735fa2d1e7c513f5 100644 (file)
@@ -5,6 +5,7 @@ import signal
 import sys
 import unittest
 from test import support
+from test.support.os_helper import TESTFN_UNDECODABLE, FS_NONASCII
 try:
     import gc
 except ImportError:
@@ -105,10 +106,10 @@ def setup_tests(ns):
 
     # Ensure there's a non-ASCII character in env vars at all times to force
     # tests consider this case. See BPO-44647 for details.
-    os.environ.setdefault(
-        UNICODE_GUARD_ENV,
-        "\N{SMILING FACE WITH SUNGLASSES}",
-    )
+    if TESTFN_UNDECODABLE and os.supports_bytes_environ:
+        os.environb.setdefault(UNICODE_GUARD_ENV.encode(), TESTFN_UNDECODABLE)
+    elif FS_NONASCII:
+        os.environ.setdefault(UNICODE_GUARD_ENV, FS_NONASCII)
 
 
 def replace_stdout():
index 3780feeda30e1bf41bc0e65bd1965240b9772331..62e6c28280e61ffb07b05026c605867c879416c7 100644 (file)
@@ -1303,7 +1303,7 @@ class ArgsTestCase(BaseTestCase):
     def test_unicode_guard_env(self):
         guard = os.environ.get(setup.UNICODE_GUARD_ENV)
         self.assertIsNotNone(guard, f"{setup.UNICODE_GUARD_ENV} not set")
-        if guard != "\N{SMILING FACE WITH SUNGLASSES}":
+        if guard.isascii():
             # Skip to signify that the env var value was changed by the user;
             # possibly to something ASCII to work around Unicode issues.
             self.skipTest("Modified guard")
diff --git a/Misc/NEWS.d/next/Tests/2022-04-25-11-16-36.gh-issue-91904.13Uvrz.rst b/Misc/NEWS.d/next/Tests/2022-04-25-11-16-36.gh-issue-91904.13Uvrz.rst
new file mode 100644 (file)
index 0000000..31ddfc3
--- /dev/null
@@ -0,0 +1,2 @@
+Fix initialization of :envvar:`PYTHONREGRTEST_UNICODE_GUARD` which prevented
+running regression tests on non-UTF-8 locale.