diff options
author | Thomas Kluyver <takowl@gmail.com> | 2014-11-23 18:01:15 -0800 |
---|---|---|
committer | Thomas Kluyver <takowl@gmail.com> | 2015-09-12 11:49:09 +0100 |
commit | d0662bd2f09d31c8e822d6466d81061d6f22f6d7 (patch) | |
tree | 9c9e91e46e413d5181af2ec0f6013989a4122b1d | |
parent | 157d2f4d9418aacd95f6c426279b52de318f7666 (diff) | |
download | pexpect-d0662bd2f09d31c8e822d6466d81061d6f22f6d7.tar.gz |
Some improvements
-rw-r--r-- | pexpect/popen_spawn.py | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/pexpect/popen_spawn.py b/pexpect/popen_spawn.py index b3b02bd..886d2f2 100644 --- a/pexpect/popen_spawn.py +++ b/pexpect/popen_spawn.py @@ -10,7 +10,7 @@ try: except ImportError: from Queue import Queue # Python 2 -from .spawnbase import SpawnBase +from .spawnbase import SpawnBase, SpawnBaseUnicode class PopenSpawn(SpawnBase): def __init__(self, cmd, timeout=30, maxread=2000, searchwindowsize=None, @@ -75,9 +75,27 @@ class PopenSpawn(SpawnBase): for s in sequence: self.send(s) + def _send(self, s): + return self.proc.stdin.write(s) + def send(self, s): self._log(s, 'send') - return self.proc.stdin.write(s) + return self._send(s) def sendline(self, line): return self.send(line + '\n') + + def wait(self): + status = self.proc.wait() + if status >= 0: + self.exitstatus = status + self.signalstatus = None + else: + self.exitstatus = None + self.signalstatus = -status + self.terminated = True + return status + +class PopenSpawnUnicode(SpawnBaseUnicode, PopenSpawn): + def _send(self, s): + super(PopenSpawnUnicode, self)._send(s.encode(self.encoding, self.errors)) |