[Python-checkins] gh-91904: Fix setting envvar PYTHONREGRTEST_UNICODE_GUARD (GH-91905)
miss-islington
webhook-mailer at python.org
Mon Apr 25 11:04:05 EDT 2022
https://github.com/python/cpython/commit/971343eb569a3418aa9a0bad9b638cccf1470ef8
commit: 971343eb569a3418aa9a0bad9b638cccf1470ef8
branch: 3.10
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: miss-islington <31488909+miss-islington at users.noreply.github.com>
date: 2022-04-25T08:03:47-07:00
summary:
gh-91904: Fix setting envvar PYTHONREGRTEST_UNICODE_GUARD (GH-91905)
It always failed on non-UTF-8 locale and prevented running regrtests.
(cherry picked from commit 54d068adfbf2b822bcbf90dac9b3f6684cec0f99)
Co-authored-by: Serhiy Storchaka <storchaka at gmail.com>
files:
A Misc/NEWS.d/next/Tests/2022-04-25-11-16-36.gh-issue-91904.13Uvrz.rst
M Lib/test/libregrtest/setup.py
M Lib/test/test_regrtest.py
diff --git a/Lib/test/libregrtest/setup.py b/Lib/test/libregrtest/setup.py
index b79175944d2bd..0bfd644bb3179 100644
--- a/Lib/test/libregrtest/setup.py
+++ b/Lib/test/libregrtest/setup.py
@@ -5,6 +5,7 @@
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 _test_audit_hook(name, args):
# 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():
diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
index 3780feeda30e1..62e6c28280e61 100644
--- a/Lib/test/test_regrtest.py
+++ b/Lib/test/test_regrtest.py
@@ -1303,7 +1303,7 @@ def test_threading_excepthook(self):
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
index 0000000000000..31ddfc312866b
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2022-04-25-11-16-36.gh-issue-91904.13Uvrz.rst
@@ -0,0 +1,2 @@
+Fix initialization of :envvar:`PYTHONREGRTEST_UNICODE_GUARD` which prevented
+running regression tests on non-UTF-8 locale.
More information about the Python-checkins
mailing list