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()
|
self.switchTo()
|
||||||
try:
|
try:
|
||||||
win32gui.ShowWindow(win32console.GetConsoleWindow(), win32con.SW_SHOW)
|
win32gui.ShowWindow(win32console.GetConsoleWindow(), win32con.SW_SHOW)
|
||||||
except:
|
finally:
|
||||||
self.switchBack()
|
self.switchBack()
|
||||||
raise
|
|
||||||
self.switchBack()
|
|
||||||
|
|
||||||
def stop_interact(self):
|
def stop_interact(self):
|
||||||
"""Hides the child console."""
|
"""Hides the child console."""
|
||||||
@ -1731,10 +1729,8 @@ class Wtty:
|
|||||||
self.switchTo()
|
self.switchTo()
|
||||||
try:
|
try:
|
||||||
win32gui.ShowWindow(win32console.GetConsoleWindow(), win32con.SW_HIDE)
|
win32gui.ShowWindow(win32console.GetConsoleWindow(), win32con.SW_HIDE)
|
||||||
except:
|
finally:
|
||||||
self.switchBack()
|
self.switchBack()
|
||||||
raise
|
|
||||||
self.switchBack()
|
|
||||||
|
|
||||||
def isalive(self, console=False):
|
def isalive(self, console=False):
|
||||||
"""True if the child is still alive, false otherwise"""
|
"""True if the child is still alive, false otherwise"""
|
||||||
|
Loading…
Reference in New Issue
Block a user