Fix SF bug #690081, test_posix fails when run in non-interactive mode
Don't bother testing os.getlogin() if we aren't running from a tty (terminal)
It fails when run without a tty (e.g., when run from cron).
diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py
index 4f0d5be..feb033d 100644
--- a/Lib/test/test_posix.py
+++ b/Lib/test/test_posix.py
@@ -29,10 +29,17 @@
# test posix functions which take no arguments and have
# no side-effects which we need to cleanup (e.g., fork, wait, abort)
NO_ARG_FUNCTIONS = [ "ctermid", "getcwd", "getcwdu", "uname",
- "times", "getlogin", "getloadavg", "tmpnam",
+ "times", "getloadavg", "tmpnam",
"getegid", "geteuid", "getgid", "getgroups",
"getpid", "getpgrp", "getppid", "getuid",
]
+ # getlogin() only works when run from a tty (terminal)
+ try:
+ if os.isatty(sys.stdin.fileno()):
+ NO_ARG_FUNCTIONS.append("getlogin")
+ except:
+ pass
+
for name in NO_ARG_FUNCTIONS:
posix_func = getattr(posix, name, None)
if posix_func is not None: