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).
This commit is contained in:
Neal Norwitz 2003-02-23 22:12:24 +00:00
parent c3bbeb3749
commit 71b13e8b4c
1 changed files with 8 additions and 1 deletions

View File

@ -29,10 +29,17 @@ class PosixTester(unittest.TestCase):
# test posix functions which take no arguments and have # test posix functions which take no arguments and have
# no side-effects which we need to cleanup (e.g., fork, wait, abort) # no side-effects which we need to cleanup (e.g., fork, wait, abort)
NO_ARG_FUNCTIONS = [ "ctermid", "getcwd", "getcwdu", "uname", NO_ARG_FUNCTIONS = [ "ctermid", "getcwd", "getcwdu", "uname",
"times", "getlogin", "getloadavg", "tmpnam", "times", "getloadavg", "tmpnam",
"getegid", "geteuid", "getgid", "getgroups", "getegid", "geteuid", "getgid", "getgroups",
"getpid", "getpgrp", "getppid", "getuid", "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: for name in NO_ARG_FUNCTIONS:
posix_func = getattr(posix, name, None) posix_func = getattr(posix, name, None)
if posix_func is not None: if posix_func is not None: