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_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
|
||||||
|
|
|
@ -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