import py, time from execnetconference import conference delta = 0 def getport(): "Create a pseudo-random port number, changing over time" global delta delta += 1000 return 10000 + (int(time.time()*10 + delta) % 10000) def setup_module(mod): mod.gateway = py.execnet.PopenGateway() #mod.gateway = py.execnet.SshGateway('codespeak.net') def test_two_sides(): port = getport() gw1 = conference(gateway, port, is_server=True) gw2 = conference(gateway, port, is_server=False) chan1 = gw1.remote_exec(""" import sys sys._hello = 'world' channel.send(1) """) ok = chan1.receive() assert ok chan2 = gw2.remote_exec(""" import sys channel.send(sys._hello) """) result = chan2.receive() assert result == 'world' def test_three_sides(): port = getport() gw1 = conference(gateway, port, is_server=True) gw2 = conference(gateway, port, is_server=False) gw3 = conference(gateway, port, is_server=False) chan1 = gw1.remote_exec(""" import sys sys._hello = 'world' channel.send(1) """) ok = chan1.receive() assert ok chan2 = gw2.remote_exec(""" import sys channel.send(sys._hello) """) result = chan2.receive() assert result == 'world' chan3 = gw3.remote_exec(""" import sys channel.send(sys._hello) """) result = chan3.receive() assert result == 'world' def test_auto(): port = getport() gw1 = conference(gateway, port) gw2 = conference(gateway, port) gw3 = conference(gateway, port) chan1 = gw1.remote_exec(""" import sys sys._hello = 'world' channel.send(1) """) ok = chan1.receive() assert ok chan2 = gw2.remote_exec(""" import sys channel.send(sys._hello) """) result = chan2.receive() assert result == 'world' chan3 = gw3.remote_exec(""" import sys channel.send(sys._hello) """) result = chan3.receive() assert result == 'world'