Skip test_readline.test_nonascii() on C locale (#5203)

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.
This commit is contained in:
Victor Stinner 2018-01-16 17:34:34 +01:00 committed by GitHub
parent 4d9aec0220
commit c495e799ed
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -3,6 +3,7 @@ Very minimal unittests for parts of the readline module.
""" """
from contextlib import ExitStack from contextlib import ExitStack
from errno import EIO from errno import EIO
import locale
import os import os
import selectors import selectors
import subprocess import subprocess
@ -153,6 +154,13 @@ print("History length:", readline.get_current_history_length())
self.assertIn(b"History length: 0\r\n", output) self.assertIn(b"History length: 0\r\n", output)
def test_nonascii(self): 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: try:
readline.add_history("\xEB\xEF") readline.add_history("\xEB\xEF")
except UnicodeEncodeError as err: except UnicodeEncodeError as err: