[REF] refactor init functions

This commit is contained in:
Benedek Racz 2019-09-05 09:47:35 +02:00
parent 58f64d39fa
commit adc181bff7
2 changed files with 16 additions and 51 deletions

View File

@ -29,10 +29,10 @@ class TestCaseConstructor(PexpectTestCase.PexpectTestCase):
This assumes that the root directory / is static during the test. This assumes that the root directory / is static during the test.
''' '''
p1 = wexpect.spawn('uname -m -n -p -r -s -v') p1 = wexpect.spawn('uname -m -n -p -r -s -v')
p2 = wexpect.spawn('uname', ['-m', '-n', '-p', '-r', '-s', '-v'])
p1.expect(wexpect.EOF) p1.expect(wexpect.EOF)
p2 = wexpect.spawn('uname', ['-m', '-n', '-p', '-r', '-s', '-v'])
p2.expect(wexpect.EOF) p2.expect(wexpect.EOF)
assert p1.before == p2.before self.assertEqual(p1.before, p2.before)
def test_named_parameters (self): def test_named_parameters (self):
'''This tests that named parameters work. '''This tests that named parameters work.

View File

@ -405,9 +405,10 @@ class spawn_unix (object):
stores the status returned by os.waitpid. You can interpret this using stores the status returned by os.waitpid. You can interpret this using
os.WIFEXITED/os.WEXITSTATUS or os.WIFSIGNALED/os.TERMSIG. """ os.WIFEXITED/os.WEXITSTATUS or os.WIFSIGNALED/os.TERMSIG. """
self.STDIN_FILENO = pty.STDIN_FILENO if sys.platform != 'win32':
self.STDOUT_FILENO = pty.STDOUT_FILENO self.STDIN_FILENO = pty.STDIN_FILENO
self.STDERR_FILENO = pty.STDERR_FILENO self.STDOUT_FILENO = pty.STDOUT_FILENO
self.STDERR_FILENO = pty.STDERR_FILENO
self.stdin = sys.stdin self.stdin = sys.stdin
self.stdout = sys.stdout self.stdout = sys.stdout
self.stderr = sys.stderr self.stderr = sys.stderr
@ -1616,55 +1617,21 @@ class spawn_unix (object):
# End of spawn_unix class # End of spawn_unix class
############################################################################## ##############################################################################
class spawn_windows (spawn_unix, object): class spawn_windows (spawn_unix):
"""This is the main class interface for Pexpect. Use this class to start """This is the main class interface for Pexpect. Use this class to start
and control child applications. """ and control child applications. """
def __init__(self, command, args=[], timeout=30, maxread=60000, searchwindowsize=None, logfile=None, cwd=None, env=None, def __init__(self, command, args=[], timeout=30, maxread=60000, searchwindowsize=None, logfile=None, cwd=None, env=None,
codepage=None): codepage=None):
self.stdin = sys.stdin
self.stdout = sys.stdout
self.stderr = sys.stderr
self.searcher = None
self.ignorecase = False
self.before = None
self.after = None
self.match = None
self.match_index = None
self.terminated = True
self.exitstatus = None
self.signalstatus = None
self.status = None # status returned by os.waitpid
self.flag_eof = False
self.pid = None
self.child_fd = -1 # initially closed
self.timeout = timeout
self.delimiter = EOF
self.logfile = logfile
self.logfile_read = None # input from child (read_nonblocking)
self.logfile_send = None # output to send (send, sendline)
self.maxread = maxread # max bytes to read at one time into buffer
self.buffer = '' # This is the read buffer. See maxread.
self.searchwindowsize = searchwindowsize # Anything before searchwindowsize point is preserved, but not searched.
self.delaybeforesend = 0.05 # Sets sleep time used just before sending data to child. Time in seconds.
self.delayafterclose = 0.1 # Sets delay in close() method to allow kernel time to update process status. Time in seconds.
self.delayafterterminate = 0.1 # Sets delay in terminate() method to allow kernel time to update process status. Time in seconds.
self.softspace = False # File-like object.
self.name = '<' + repr(self) + '>' # File-like object.
self.encoding = None # File-like object.
self.closed = True # File-like object.
self.ocwd = os.getcwd()
self.cwd = cwd
self.env = env
self.codepage = codepage self.codepage = codepage
# allow dummy instances for subclasses that may not use command or args. # Super class init function
if command is None: super(spawn_windows, self).__init__(command, args, timeout, maxread, searchwindowsize, logfile, cwd, env)
self.command = None
self.args = None #__irix_hack set by super, windows doesn't need it.
self.name = '<pexpect factory incomplete>' self.__irix_hack = None
else:
self._spawn (command, args)
def __del__(self): def __del__(self):
"""This makes sure that no system resources are left open. Python only """This makes sure that no system resources are left open. Python only
@ -1731,6 +1698,7 @@ class spawn_windows (spawn_unix, object):
self.closed = False self.closed = False
self.pid = self.wtty.pid self.pid = self.wtty.pid
def fileno (self): # File-like object. def fileno (self): # File-like object.
"""There is no child fd.""" """There is no child fd."""
@ -1941,6 +1909,7 @@ class Wtty:
self.lastReadData = "" self.lastReadData = ""
self.pid = None self.pid = None
self.processList = [] self.processList = []
self.__consout = None
# We need a timeout for connecting to the child process # We need a timeout for connecting to the child process
self.timeout = timeout self.timeout = timeout
self.totalRead = 0 self.totalRead = 0
@ -2210,10 +2179,6 @@ class Wtty:
for i, c in enumerate(s): for i, c in enumerate(s):
if c == screenbufferfillchar: if c == screenbufferfillchar:
if (self.totalRead - self.lastRead + i + 1) % 80 == 0: if (self.totalRead - self.lastRead + i + 1) % 80 == 0:
strlist.append('\r\n') strlist.append('\r\n')
else: else:
strlist.append(c) strlist.append(c)