]> granicus.if.org Git - python/commitdiff
Skip test_readline.test_nonascii() on C locale (#5203)
authorVictor Stinner <victor.stinner@gmail.com>
Tue, 16 Jan 2018 16:34:34 +0000 (17:34 +0100)
committerGitHub <noreply@github.com>
Tue, 16 Jan 2018 16:34:34 +0000 (17:34 +0100)
bpo-29240: On FreeBSD, if the LC_CTYPE locale is "C" or "POSIX",
writing and reading non-ASCII bytes into/from a TTY works,
but readline or ncurses ignores non-ASCII bytes on read.

Lib/test/test_readline.py

index b4c25dee9d3c20a9f0e3e4986bc32677ed7ecd70..67ee9b7f7cfb1f4f65ea839058c508511349c69e 100644 (file)
@@ -3,6 +3,7 @@ Very minimal unittests for parts of the readline module.
 """
 from contextlib import ExitStack
 from errno import EIO
+import locale
 import os
 import selectors
 import subprocess
@@ -153,6 +154,13 @@ print("History length:", readline.get_current_history_length())
         self.assertIn(b"History length: 0\r\n", output)
 
     def test_nonascii(self):
+        loc = locale.setlocale(locale.LC_CTYPE, None)
+        if loc in ('C', 'POSIX'):
+            # bpo-29240: On FreeBSD, if the LC_CTYPE locale is C or POSIX,
+            # writing and reading non-ASCII bytes into/from a TTY works, but
+            # readline or ncurses ignores non-ASCII bytes on read.
+            self.skipTest(f"the LC_CTYPE locale is {loc!r}")
+
         try:
             readline.add_history("\xEB\xEF")
         except UnicodeEncodeError as err: