adding a new execnet example

--HG--
branch : 1.0.x
This commit is contained in:
holger krekel 2009-07-10 13:44:33 +02:00
parent 9590ccb65d
commit cd0972ede8
2 changed files with 32 additions and 0 deletions

View File

@ -37,6 +37,7 @@ example/assertion/failure_demo.py
example/assertion/test_failures.py example/assertion/test_failures.py
example/assertion/test_setup_flow_example.py example/assertion/test_setup_flow_example.py
example/execnet/popen_read_multiple.py example/execnet/popen_read_multiple.py
example/execnet/redirect_remote_output.py
example/execnet/svn-sync-repo.py example/execnet/svn-sync-repo.py
example/execnet/sysinfo.py example/execnet/sysinfo.py
example/funcarg/conftest.py example/funcarg/conftest.py

View File

@ -0,0 +1,31 @@
"""
redirect output from remote to a local function
showcasing features of the channel object:
- sending a channel over a channel
- adapting a channel to a file object
- setting a callback for receiving channel data
"""
import py
gw = py.execnet.PopenGateway()
outchan = gw.remote_exec("""
import sys
outchan = channel.gateway.newchannel()
sys.stdout = outchan.makefile("w")
channel.send(outchan)
""").receive()
# note: callbacks execute in receiver thread!
def write(data):
print "received:", repr(data)
outchan.setcallback(write)
gw.remote_exec("""
print 'hello world'
print 'remote execution ends'
""").waitclose()