Addresses the remaining feature request from issue #2489.
a file descriptor. The defaults try to read 1024 bytes each time they are
called.
+ .. versionchanged:: 3.4
+ :func:`spawn` now returns the status value from :func:`os.waitpid`
+ on the child process.
Example
-------
tty.tcsetattr(STDIN_FILENO, tty.TCSAFLUSH, mode)
os.close(master_fd)
+ return os.waitpid(pid, 0)[1]
# pty.fork() passed.
+ def test_spawn_returns_status(self):
+ status = pty.spawn([sys.executable, '-c', 'import sys; sys.exit(0)'])
+ self.assertEqual(status, 0)
+ status = pty.spawn([sys.executable, '-c', 'import sys; sys.exit(5)'])
+ self.assertEqual(status, 5 << 8)
+
class SmallPtyTests(unittest.TestCase):
"""These tests don't spawn children or hang."""
Library
-------
+- pty.spawn() now returns the child process status returned by os.waitpid().
+
- Issue #15756: subprocess.poll() now properly handles errno.ECHILD to
return a returncode of 0 when the child has already exited or cannot
be waited on.