parent
9590ccb65d
commit
cd0972ede8
1
MANIFEST
1
MANIFEST
|
@ -37,6 +37,7 @@ example/assertion/failure_demo.py
|
|||
example/assertion/test_failures.py
|
||||
example/assertion/test_setup_flow_example.py
|
||||
example/execnet/popen_read_multiple.py
|
||||
example/execnet/redirect_remote_output.py
|
||||
example/execnet/svn-sync-repo.py
|
||||
example/execnet/sysinfo.py
|
||||
example/funcarg/conftest.py
|
||||
|
|
|
@ -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()
|
||||
|
Loading…
Reference in New Issue