Issue #15785: Modify window.get_wch() API of the curses module: return a
character for most keys, and an integer for special keys, instead of always
returning an integer. So it is now possible to distinguish special keys like
keypad keys.
diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py
index 21ac608..e959622 100644
--- a/Lib/test/test_curses.py
+++ b/Lib/test/test_curses.py
@@ -267,8 +267,7 @@
def test_unget_wch(stdscr):
if not hasattr(curses, 'unget_wch'):
return
- import locale
- encoding = locale.getpreferredencoding()
+ encoding = stdscr.encoding
for ch in ('a', '\xe9', '\u20ac', '\U0010FFFF'):
try:
ch.encode(encoding)
@@ -277,18 +276,17 @@
try:
curses.unget_wch(ch)
except Exception as err:
- raise Exception("unget_wch(%a) failed with locale encoding %s: %s"
- % (ch, encoding, err))
+ raise Exception("unget_wch(%a) failed with encoding %s: %s"
+ % (ch, stdscr.encoding, err))
read = stdscr.get_wch()
- read = chr(read)
if read != ch:
raise AssertionError("%r != %r" % (read, ch))
code = ord(ch)
curses.unget_wch(code)
read = stdscr.get_wch()
- if read != code:
- raise AssertionError("%r != %r" % (read, code))
+ if read != ch:
+ raise AssertionError("%r != %r" % (read, ch))
def test_issue10570():
b = curses.tparm(curses.tigetstr("cup"), 5, 3)