|
|
|
@ -18,6 +18,9 @@ class Timeout(Exception): |
|
|
|
|
class Spawn(object): |
|
|
|
|
"""Represents the stdio of a freshly created sub-process. Commands may be |
|
|
|
|
sent to the process, and responses waited for. |
|
|
|
|
|
|
|
|
|
Members: |
|
|
|
|
output: accumulated output from expect() |
|
|
|
|
""" |
|
|
|
|
|
|
|
|
|
def __init__(self, args, cwd=None): |
|
|
|
@ -34,6 +37,7 @@ class Spawn(object): |
|
|
|
|
|
|
|
|
|
self.waited = False |
|
|
|
|
self.buf = '' |
|
|
|
|
self.output = '' |
|
|
|
|
self.logfile_read = None |
|
|
|
|
self.before = '' |
|
|
|
|
self.after = '' |
|
|
|
@ -154,6 +158,7 @@ class Spawn(object): |
|
|
|
|
posafter = earliest_m.end() |
|
|
|
|
self.before = self.buf[:pos] |
|
|
|
|
self.after = self.buf[pos:posafter] |
|
|
|
|
self.output += self.buf[:posafter] |
|
|
|
|
self.buf = self.buf[posafter:] |
|
|
|
|
return earliest_pi |
|
|
|
|
tnow_s = time.time() |
|
|
|
@ -198,3 +203,11 @@ class Spawn(object): |
|
|
|
|
if not self.isalive(): |
|
|
|
|
break |
|
|
|
|
time.sleep(0.1) |
|
|
|
|
|
|
|
|
|
def get_expect_output(self): |
|
|
|
|
"""Return the output read by expect() |
|
|
|
|
|
|
|
|
|
Returns: |
|
|
|
|
The output processed by expect(), as a string. |
|
|
|
|
""" |
|
|
|
|
return self.output |
|
|
|
|