cpython: c9905e802042 (original) (raw)
--- a/Lib/test/test_capi.py +++ b/Lib/test/test_capi.py @@ -319,34 +319,38 @@ class EmbeddingTests(unittest.TestCase): print() print(out) print(err)
expected_errors = sys.__stdout__.errors[](#l1.7) expected_stdin_encoding = sys.__stdin__.encoding[](#l1.8) expected_pipe_encoding = self._get_default_pipe_encoding()[](#l1.9) expected_output = os.linesep.join([[](#l1.10) "--- Use defaults ---",[](#l1.11) "Expected encoding: default",[](#l1.12) "Expected errors: default",[](#l1.13)
"stdin: {0}:strict",[](#l1.14)
"stdout: {1}:strict",[](#l1.15)
"stderr: {1}:backslashreplace",[](#l1.16)
"stdin: {in_encoding}:{errors}",[](#l1.17)
"stdout: {out_encoding}:{errors}",[](#l1.18)
"stderr: {out_encoding}:backslashreplace",[](#l1.19) "--- Set errors only ---",[](#l1.20) "Expected encoding: default",[](#l1.21)
"Expected errors: surrogateescape",[](#l1.22)
"stdin: {0}:surrogateescape",[](#l1.23)
"stdout: {1}:surrogateescape",[](#l1.24)
"stderr: {1}:backslashreplace",[](#l1.25)
"Expected errors: ignore",[](#l1.26)
"stdin: {in_encoding}:ignore",[](#l1.27)
"stdout: {out_encoding}:ignore",[](#l1.28)
"stderr: {out_encoding}:backslashreplace",[](#l1.29) "--- Set encoding only ---",[](#l1.30) "Expected encoding: latin-1",[](#l1.31) "Expected errors: default",[](#l1.32)
"stdin: latin-1:strict",[](#l1.33)
"stdout: latin-1:strict",[](#l1.34)
"stdin: latin-1:{errors}",[](#l1.35)
"stdout: latin-1:{errors}",[](#l1.36) "stderr: latin-1:backslashreplace",[](#l1.37) "--- Set encoding and errors ---",[](#l1.38) "Expected encoding: latin-1",[](#l1.39)
"Expected errors: surrogateescape",[](#l1.40)
"stdin: latin-1:surrogateescape",[](#l1.41)
"stdout: latin-1:surrogateescape",[](#l1.42)
"stderr: latin-1:backslashreplace"]).format(expected_stdin_encoding,[](#l1.43)
expected_pipe_encoding)[](#l1.44)
"Expected errors: replace",[](#l1.45)
"stdin: latin-1:replace",[](#l1.46)
"stdout: latin-1:replace",[](#l1.47)
"stderr: latin-1:backslashreplace"])[](#l1.48)
expected_output = expected_output.format([](#l1.49)
in_encoding=expected_stdin_encoding,[](#l1.50)
out_encoding=expected_pipe_encoding,[](#l1.51)
errors=expected_errors)[](#l1.52) # This is useful if we ever trip over odd platform behaviour[](#l1.53) self.maxDiff = None[](#l1.54) self.assertEqual(out.strip(), expected_output)[](#l1.55)
--- a/Modules/_testembed.c +++ b/Modules/_testembed.c @@ -109,11 +109,11 @@ static void test_forced_io_encoding(void printf("--- Use defaults ---\n"); check_stdio_details(NULL, NULL); printf("--- Set errors only ---\n");
- check_stdio_details(NULL, "ignore"); printf("--- Set encoding only ---\n"); check_stdio_details("latin-1", NULL); printf("--- Set encoding and errors ---\n");
/* Check calling after initialization fails */ Py_Initialize();