mirror of
https://github.com/python/cpython.git
synced 2025-08-22 09:45:06 +00:00
bpo-35290: Add debug info to test_c_locale_coercion (GH-10631)
In verbose mode, test_c_locale_coercion now dumps global variables at startup.
This commit is contained in:
parent
d936a8f8e0
commit
7c2d5702d1
1 changed files with 15 additions and 6 deletions
|
@ -8,7 +8,7 @@ import sysconfig
|
||||||
import shutil
|
import shutil
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
import test.support
|
from test import support
|
||||||
from test.support.script_helper import (
|
from test.support.script_helper import (
|
||||||
run_python_until_end,
|
run_python_until_end,
|
||||||
interpreter_requires_environment,
|
interpreter_requires_environment,
|
||||||
|
@ -27,7 +27,7 @@ EXPECT_COERCION_IN_DEFAULT_LOCALE = True
|
||||||
|
|
||||||
# Apply some platform dependent overrides
|
# Apply some platform dependent overrides
|
||||||
if sys.platform.startswith("linux"):
|
if sys.platform.startswith("linux"):
|
||||||
if test.support.is_android:
|
if support.is_android:
|
||||||
# Android defaults to using UTF-8 for all system interfaces
|
# Android defaults to using UTF-8 for all system interfaces
|
||||||
EXPECTED_C_LOCALE_STREAM_ENCODING = "utf-8"
|
EXPECTED_C_LOCALE_STREAM_ENCODING = "utf-8"
|
||||||
EXPECTED_C_LOCALE_FS_ENCODING = "utf-8"
|
EXPECTED_C_LOCALE_FS_ENCODING = "utf-8"
|
||||||
|
@ -203,6 +203,15 @@ def setUpModule():
|
||||||
CLI_COERCION_TARGET = AVAILABLE_TARGETS[0]
|
CLI_COERCION_TARGET = AVAILABLE_TARGETS[0]
|
||||||
CLI_COERCION_WARNING = CLI_COERCION_WARNING_FMT.format(CLI_COERCION_TARGET)
|
CLI_COERCION_WARNING = CLI_COERCION_WARNING_FMT.format(CLI_COERCION_TARGET)
|
||||||
|
|
||||||
|
if support.verbose:
|
||||||
|
print(f"AVAILABLE_TARGETS = {AVAILABLE_TARGETS!r}")
|
||||||
|
print(f"EXPECTED_C_LOCALE_EQUIVALENTS = {EXPECTED_C_LOCALE_EQUIVALENTS!r}")
|
||||||
|
print(f"EXPECTED_C_LOCALE_STREAM_ENCODING = {EXPECTED_C_LOCALE_STREAM_ENCODING!r}")
|
||||||
|
print(f"EXPECTED_C_LOCALE_FS_ENCODING = {EXPECTED_C_LOCALE_FS_ENCODING!r}")
|
||||||
|
print(f"EXPECT_COERCION_IN_DEFAULT_LOCALE = {EXPECT_COERCION_IN_DEFAULT_LOCALE!r}")
|
||||||
|
print(f"_C_UTF8_LOCALES = {_C_UTF8_LOCALES!r}")
|
||||||
|
print(f"_check_nl_langinfo_CODESET = {_check_nl_langinfo_CODESET!r}")
|
||||||
|
|
||||||
|
|
||||||
class _LocaleHandlingTestCase(unittest.TestCase):
|
class _LocaleHandlingTestCase(unittest.TestCase):
|
||||||
# Base class to check expected locale handling behaviour
|
# Base class to check expected locale handling behaviour
|
||||||
|
@ -279,7 +288,7 @@ class LocaleConfigurationTests(_LocaleHandlingTestCase):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@test.support.cpython_only
|
@support.cpython_only
|
||||||
@unittest.skipUnless(sysconfig.get_config_var("PY_COERCE_C_LOCALE"),
|
@unittest.skipUnless(sysconfig.get_config_var("PY_COERCE_C_LOCALE"),
|
||||||
"C locale coercion disabled at build time")
|
"C locale coercion disabled at build time")
|
||||||
class LocaleCoercionTests(_LocaleHandlingTestCase):
|
class LocaleCoercionTests(_LocaleHandlingTestCase):
|
||||||
|
@ -335,7 +344,7 @@ class LocaleCoercionTests(_LocaleHandlingTestCase):
|
||||||
# locale environment variables are undefined or empty. When
|
# locale environment variables are undefined or empty. When
|
||||||
# this code path is run with environ['LC_ALL'] == 'C', then
|
# this code path is run with environ['LC_ALL'] == 'C', then
|
||||||
# LEGACY_LOCALE_WARNING is printed.
|
# LEGACY_LOCALE_WARNING is printed.
|
||||||
if (test.support.is_android and
|
if (support.is_android and
|
||||||
_expected_warnings == [CLI_COERCION_WARNING]):
|
_expected_warnings == [CLI_COERCION_WARNING]):
|
||||||
_expected_warnings = None
|
_expected_warnings = None
|
||||||
self._check_child_encoding_details(base_var_dict,
|
self._check_child_encoding_details(base_var_dict,
|
||||||
|
@ -405,11 +414,11 @@ class LocaleCoercionTests(_LocaleHandlingTestCase):
|
||||||
coercion_expected=False)
|
coercion_expected=False)
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
test.support.run_unittest(
|
support.run_unittest(
|
||||||
LocaleConfigurationTests,
|
LocaleConfigurationTests,
|
||||||
LocaleCoercionTests
|
LocaleCoercionTests
|
||||||
)
|
)
|
||||||
test.support.reap_children()
|
support.reap_children()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
test_main()
|
test_main()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue