mirror of
https://github.com/clearml/wexpect-venv
synced 2025-02-24 13:23:09 +00:00
[ADD][TST] console reader test, [REF] clean interact methods
This commit is contained in:
parent
9e26c67324
commit
93c130341f
60
tests/test_console_reader.py
Normal file
60
tests/test_console_reader.py
Normal file
@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env python
|
||||
'''
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2008 Noah Spurrier, Richard Holden, Marco Molteni, Kimberley Burchett, Robert Stone,
|
||||
Hartmut Goebel, Chad Schroeder, Erick Tryzelaar, Dave Kirby, Ids vander Molen, George Todd,
|
||||
Noel Taylor, Nicolas D. Cesar, Alexander Gattin, Geoffrey Marshall, Francisco Lourenco, Glen Mabey,
|
||||
Karthik Gurusamy, Fernando Perez, Corey Minyard, Jon Cohen, Guillaume Chazarain, Andrew Ryan,
|
||||
Nick Craig-Wood, Andrew Stone, Jorgen Grahn, Benedek Racz
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
'''
|
||||
|
||||
import wexpect
|
||||
import time
|
||||
import unittest
|
||||
import win32process
|
||||
import win32api
|
||||
import os
|
||||
from . import PexpectTestCase
|
||||
|
||||
|
||||
if "RUN_CONSOLE_READER_TEST" not in os.environ:
|
||||
skip = True
|
||||
|
||||
class ConsoleReaderTestCase(PexpectTestCase.PexpectTestCase):
|
||||
|
||||
@unittest.skipIf(skip, "Skipping test")
|
||||
def test_console_reader(self):
|
||||
|
||||
|
||||
pid = win32process.GetCurrentProcessId()
|
||||
tid = win32api.GetCurrentThreadId()
|
||||
args = ['sleep', '1']
|
||||
|
||||
with self.assertRaises(SystemExit):
|
||||
wexpect.ConsoleReader(wexpect.join_args(args), tid=tid, pid=pid, cp=1250, logdir='wexpect')
|
||||
|
||||
os.system('cls')
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
suite = unittest.makeSuite(ConsoleReaderTestCase,'test')
|
@ -1720,10 +1720,8 @@ class Wtty:
|
||||
self.switchTo()
|
||||
try:
|
||||
win32gui.ShowWindow(win32console.GetConsoleWindow(), win32con.SW_SHOW)
|
||||
except:
|
||||
finally:
|
||||
self.switchBack()
|
||||
raise
|
||||
self.switchBack()
|
||||
|
||||
def stop_interact(self):
|
||||
"""Hides the child console."""
|
||||
@ -1731,10 +1729,8 @@ class Wtty:
|
||||
self.switchTo()
|
||||
try:
|
||||
win32gui.ShowWindow(win32console.GetConsoleWindow(), win32con.SW_HIDE)
|
||||
except:
|
||||
finally:
|
||||
self.switchBack()
|
||||
raise
|
||||
self.switchBack()
|
||||
|
||||
def isalive(self, console=False):
|
||||
"""True if the child is still alive, false otherwise"""
|
||||
|
Loading…
Reference in New Issue
Block a user