summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Kluyver <takowl@gmail.com>2014-11-23 18:01:15 -0800
committerThomas Kluyver <takowl@gmail.com>2015-09-12 11:49:09 +0100
commitd0662bd2f09d31c8e822d6466d81061d6f22f6d7 (patch)
tree9c9e91e46e413d5181af2ec0f6013989a4122b1d
parent157d2f4d9418aacd95f6c426279b52de318f7666 (diff)
downloadpexpect-d0662bd2f09d31c8e822d6466d81061d6f22f6d7.tar.gz
Some improvements
-rw-r--r--pexpect/popen_spawn.py22
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))