mirror of
https://github.com/clearml/wexpect-venv
synced 2025-06-26 18:15:52 +00:00
[CLN] clean up around the example scripts
This commit is contained in:
parent
813a462475
commit
cd968844cd
@ -1,6 +1,7 @@
|
|||||||
# **wexpect**
|
# **wexpect**
|
||||||
|
|
||||||
[](https://ci.appveyor.com/project/raczben/wexpect)
|
[](https://ci.appveyor.com/project/raczben/wexpect)
|
||||||
|
[](https://codecov.io/gh/raczben/wexpect)
|
||||||
|
|
||||||
*Wexpect* is a Windows variant of [pexpect](https://pexpect.readthedocs.io/en/stable/).
|
*Wexpect* is a Windows variant of [pexpect](https://pexpect.readthedocs.io/en/stable/).
|
||||||
|
|
||||||
@ -9,9 +10,9 @@ them automatically.
|
|||||||
|
|
||||||
## You need wexpect if...
|
## You need wexpect if...
|
||||||
|
|
||||||
- you want to control any windows application from python script.
|
- you want to control any windows console application from python script.
|
||||||
- you want to write test-automation script for a windows application.
|
- you want to write test-automation script for a windows console application.
|
||||||
- you want to post-process some application's standard output.
|
- you want to automate your job by controlling multiple application parallel, synchoronusly.
|
||||||
|
|
||||||
## **Install**
|
## **Install**
|
||||||
|
|
||||||
|
19
examples/README.md
Normal file
19
examples/README.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# **wexpect examples**
|
||||||
|
|
||||||
|
There are several example usage of wexpect. Choose one as template of your application.
|
||||||
|
|
||||||
|
## hello_wexpect
|
||||||
|
|
||||||
|
[hello_wexpect](./hello_wexpect.py) is the simplest example. It starts a windows command interpreter
|
||||||
|
(aka. cmd) lists the current directory and exits.
|
||||||
|
|
||||||
|
## python
|
||||||
|
|
||||||
|
[python](./python.py) is a full custom example code. This example script runs [foo](./foo.py) python
|
||||||
|
program, and communicates with it. For better understanding please run natively foo<i></i>.py first, which
|
||||||
|
is a very basic stdio handler script.
|
||||||
|
|
||||||
|
## cmd_wrapper
|
||||||
|
|
||||||
|
[cmd_wrapper](./cmd_wrapper.py) is a simple wrapper around the cmd windows command interpreter. It
|
||||||
|
waits for commands executes them in the spawned cmd, and prints the results.
|
47
examples/cmd_wrapper.py
Normal file
47
examples/cmd_wrapper.py
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# A simple example code for wexpect
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
|
||||||
|
here = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
wexpectPath = os.path.dirname(here)
|
||||||
|
|
||||||
|
import wexpect
|
||||||
|
|
||||||
|
# Path of cmd executable:
|
||||||
|
cmd_exe = 'cmd'
|
||||||
|
# The prompt should be more sophisticated than just a '>'.
|
||||||
|
cmdPrompt = re.compile('[A-Z]\:.+>')
|
||||||
|
|
||||||
|
# Start the child process
|
||||||
|
p = wexpect.spawn(cmd_exe)
|
||||||
|
|
||||||
|
# Wait for prompt
|
||||||
|
p.expect(cmdPrompt, timeout = 5)
|
||||||
|
|
||||||
|
# print the texts
|
||||||
|
print(p.before, end='')
|
||||||
|
print(p.match.group(0), end='')
|
||||||
|
|
||||||
|
|
||||||
|
while True:
|
||||||
|
|
||||||
|
# Wait and run a command.
|
||||||
|
command = input()
|
||||||
|
p.sendline(command)
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Wait for prompt
|
||||||
|
p.expect(cmdPrompt)
|
||||||
|
|
||||||
|
# print the texts
|
||||||
|
print(p.before, end='')
|
||||||
|
print(p.match.group(0), end='')
|
||||||
|
|
||||||
|
except wexpect.EOF:
|
||||||
|
# The program has exited
|
||||||
|
print('The program has exied... BY!')
|
||||||
|
break
|
@ -1,13 +1,19 @@
|
|||||||
from __future__ import print_function
|
'''
|
||||||
|
This is is a very basic stdio handler script. This is used by python.py example.
|
||||||
|
'''
|
||||||
|
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
# Read an integer from the user:
|
||||||
print('Give a small integer: ', end='')
|
print('Give a small integer: ', end='')
|
||||||
num = input()
|
num = input()
|
||||||
|
|
||||||
|
# Wait the given time
|
||||||
for i in range(int(num)):
|
for i in range(int(num)):
|
||||||
print('waiter ' + str(i))
|
print('waiter ' + str(i))
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
|
|
||||||
|
# Ask the name of the user to say hello.
|
||||||
print('Give your name: ', end='')
|
print('Give your name: ', end='')
|
||||||
name = input()
|
name = input()
|
||||||
print('Hello ' + str(name), end='')
|
print('Hello ' + str(name), end='')
|
30
examples/hello_wexpect.py
Normal file
30
examples/hello_wexpect.py
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
'''
|
||||||
|
This is the simplest example. It starts a windows command interpreter (aka. cmd) lists the current
|
||||||
|
directory and exits.
|
||||||
|
'''
|
||||||
|
|
||||||
|
import wexpect
|
||||||
|
|
||||||
|
# Start cmd as child process
|
||||||
|
child = wexpect.spawn('cmd.exe')
|
||||||
|
|
||||||
|
# Wait for prompt when cmd becomes ready.
|
||||||
|
child.expect('>')
|
||||||
|
|
||||||
|
# Prints the cmd's start message
|
||||||
|
print(child.before)
|
||||||
|
|
||||||
|
# run list directory command
|
||||||
|
child.sendline('ls')
|
||||||
|
|
||||||
|
# Waiting for prompt
|
||||||
|
child.expect('>')
|
||||||
|
|
||||||
|
# Prints content of the directory
|
||||||
|
print(child.before)
|
||||||
|
|
||||||
|
# Exit from cmd
|
||||||
|
child.sendline('exit')
|
||||||
|
|
||||||
|
# Waiting for cmd termination.
|
||||||
|
child.wait()
|
@ -1,6 +1,8 @@
|
|||||||
# A simple example code for wexpect written in python-2.7
|
'''
|
||||||
|
This example script runs foo python program, and communicates with it. For better understanding
|
||||||
|
please run natively foo.py first, which is a very basic stdio handler script.
|
||||||
|
'''
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
import sys
|
import sys
|
||||||
import wexpect
|
import wexpect
|
||||||
import os
|
import os
|
||||||
@ -35,4 +37,3 @@ p.wait()
|
|||||||
|
|
||||||
# print the texts
|
# print the texts
|
||||||
print(p.read(), end='')
|
print(p.read(), end='')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user