]> granicus.if.org Git - python/commitdiff
Issue #19977: Fix test_capi when LC_CTYPE locale is POSIX
authorVictor Stinner <victor.stinner@gmail.com>
Tue, 18 Mar 2014 01:38:12 +0000 (02:38 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Tue, 18 Mar 2014 01:38:12 +0000 (02:38 +0100)
Lib/test/test_capi.py
Modules/_testembed.c

index ba7c38db27cf908f9b3820743d5129889a8d72e2..408f12c3245da07743b8acf148e93faae4ed65ea 100644 (file)
@@ -319,34 +319,38 @@ class EmbeddingTests(unittest.TestCase):
             print()
             print(out)
             print(err)
+        expected_errors = sys.__stdout__.errors
         expected_stdin_encoding = sys.__stdin__.encoding
         expected_pipe_encoding = self._get_default_pipe_encoding()
         expected_output = os.linesep.join([
         "--- Use defaults ---",
         "Expected encoding: default",
         "Expected errors: default",
-        "stdin: {0}:strict",
-        "stdout: {1}:strict",
-        "stderr: {1}:backslashreplace",
+        "stdin: {in_encoding}:{errors}",
+        "stdout: {out_encoding}:{errors}",
+        "stderr: {out_encoding}:backslashreplace",
         "--- Set errors only ---",
         "Expected encoding: default",
-        "Expected errors: surrogateescape",
-        "stdin: {0}:surrogateescape",
-        "stdout: {1}:surrogateescape",
-        "stderr: {1}:backslashreplace",
+        "Expected errors: ignore",
+        "stdin: {in_encoding}:ignore",
+        "stdout: {out_encoding}:ignore",
+        "stderr: {out_encoding}:backslashreplace",
         "--- Set encoding only ---",
         "Expected encoding: latin-1",
         "Expected errors: default",
-        "stdin: latin-1:strict",
-        "stdout: latin-1:strict",
+        "stdin: latin-1:{errors}",
+        "stdout: latin-1:{errors}",
         "stderr: latin-1:backslashreplace",
         "--- Set encoding and errors ---",
         "Expected encoding: latin-1",
-        "Expected errors: surrogateescape",
-        "stdin: latin-1:surrogateescape",
-        "stdout: latin-1:surrogateescape",
-        "stderr: latin-1:backslashreplace"]).format(expected_stdin_encoding,
-                                                    expected_pipe_encoding)
+        "Expected errors: replace",
+        "stdin: latin-1:replace",
+        "stdout: latin-1:replace",
+        "stderr: latin-1:backslashreplace"])
+        expected_output = expected_output.format(
+                                in_encoding=expected_stdin_encoding,
+                                out_encoding=expected_pipe_encoding,
+                                errors=expected_errors)
         # This is useful if we ever trip over odd platform behaviour
         self.maxDiff = None
         self.assertEqual(out.strip(), expected_output)
index a21d2518be34526e5390c90b4fc2c1a93f3d1be6..39ff0977c8fdbf7ae39c97d24b82ed08324301f8 100644 (file)
@@ -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, "surrogateescape");
+    check_stdio_details(NULL, "ignore");
     printf("--- Set encoding only ---\n");
     check_stdio_details("latin-1", NULL);
     printf("--- Set encoding and errors ---\n");
-    check_stdio_details("latin-1", "surrogateescape");
+    check_stdio_details("latin-1", "replace");
 
     /* Check calling after initialization fails */
     Py_Initialize();