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)