Skip test_curses if stdin is not a tty (like when run from cron or buildbot).  Will backport.
diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py
index 67f3c57..7481642 100644
--- a/Lib/test/test_curses.py
+++ b/Lib/test/test_curses.py
@@ -8,7 +8,7 @@
 # getmouse(), ungetmouse(), init_color()
 #
 
-import curses, sys, tempfile
+import curses, sys, tempfile, os
 
 # Optionally test curses module.  This currently requires that the
 # 'curses' resource be given on the regrtest command line using the -u
@@ -16,6 +16,8 @@
 
 from test import test_support
 test_support.requires('curses')
+if not os.isatty(sys.stdin.fileno()):
+    raise test_support.TestSkipped, "stdin is not a tty"
 
 def window_funcs(stdscr):
     "Test the methods of windows"