bpo-37335, test_c_locale_coercion: Remove unnecessary code (GH-14447)

Python initialization now ensures that sys stream encoding
names are always normalized by codecs.lookup(encoding).name.
Simplify test_c_locale_coercion: it doesn't have to normalize
encoding names anymore.
This commit is contained in:
Jakub Kulík 2019-07-02 12:48:28 +02:00 committed by Victor Stinner
parent d4efd917ac
commit 61bf97e916
2 changed files with 6 additions and 19 deletions

View File

@ -116,28 +116,15 @@ class EncodingDetails(_EncodingDetails):
stream_info = 2*[_stream.format("surrogateescape")] stream_info = 2*[_stream.format("surrogateescape")]
# stderr should always use backslashreplace # stderr should always use backslashreplace
stream_info.append(_stream.format("backslashreplace")) stream_info.append(_stream.format("backslashreplace"))
expected_lang = env_vars.get("LANG", "not set").lower() expected_lang = env_vars.get("LANG", "not set")
if coercion_expected: if coercion_expected:
expected_lc_ctype = CLI_COERCION_TARGET.lower() expected_lc_ctype = CLI_COERCION_TARGET
else: else:
expected_lc_ctype = env_vars.get("LC_CTYPE", "not set").lower() expected_lc_ctype = env_vars.get("LC_CTYPE", "not set")
expected_lc_all = env_vars.get("LC_ALL", "not set").lower() expected_lc_all = env_vars.get("LC_ALL", "not set")
env_info = expected_lang, expected_lc_ctype, expected_lc_all env_info = expected_lang, expected_lc_ctype, expected_lc_all
return dict(cls(fs_encoding, *stream_info, *env_info)._asdict()) return dict(cls(fs_encoding, *stream_info, *env_info)._asdict())
@staticmethod
def _handle_output_variations(data):
"""Adjust the output to handle platform specific idiosyncrasies
* Some platforms report ASCII as ANSI_X3.4-1968
* Some platforms report ASCII as US-ASCII
* Some platforms report UTF-8 instead of utf-8
"""
data = data.replace(b"ANSI_X3.4-1968", b"ascii")
data = data.replace(b"US-ASCII", b"ascii")
data = data.lower()
return data
@classmethod @classmethod
def get_child_details(cls, env_vars): def get_child_details(cls, env_vars):
"""Retrieves fsencoding and standard stream details from a child process """Retrieves fsencoding and standard stream details from a child process
@ -157,8 +144,7 @@ class EncodingDetails(_EncodingDetails):
if not result.rc == 0: if not result.rc == 0:
result.fail(py_cmd) result.fail(py_cmd)
# All subprocess outputs in this test case should be pure ASCII # All subprocess outputs in this test case should be pure ASCII
adjusted_output = cls._handle_output_variations(result.out) stdout_lines = result.out.decode("ascii").splitlines()
stdout_lines = adjusted_output.decode("ascii").splitlines()
child_encoding_details = dict(cls(*stdout_lines)._asdict()) child_encoding_details = dict(cls(*stdout_lines)._asdict())
stderr_lines = result.err.decode("ascii").rstrip().splitlines() stderr_lines = result.err.decode("ascii").rstrip().splitlines()
return child_encoding_details, stderr_lines return child_encoding_details, stderr_lines

View File

@ -0,0 +1 @@
Remove no longer necessary code from c locale coercion tests