ups, forgot to add a neccessary file.

--HG--
branch : trunk
This commit is contained in:
holger krekel 2009-09-09 15:36:53 +02:00
parent b70c7a209d
commit 8ea2364039
1 changed files with 46 additions and 0 deletions

View File

@ -0,0 +1,46 @@
import py
def pytest_generate_tests(metafunc):
if 'gw' in metafunc.funcargnames:
if hasattr(metafunc.cls, 'gwtype'):
gwtypes = [metafunc.cls.gwtype]
else:
gwtypes = ['popen', 'socket', 'ssh']
for gwtype in gwtypes:
metafunc.addcall(id=gwtype, param=gwtype)
def pytest_funcarg__gw(request):
scope = "module"
if request.param == "popen":
return request.cached_setup(
setup=py.execnet.PopenGateway,
teardown=lambda gw: gw.exit(),
extrakey=request.param,
scope=scope)
elif request.param == "socket":
return request.cached_setup(
setup=setup_socket_gateway,
teardown=teardown_socket_gateway,
extrakey=request.param,
scope=scope)
elif request.param == "ssh":
return request.cached_setup(
setup=lambda: setup_ssh_gateway(request),
teardown=lambda gw: gw.exit(),
extrakey=request.param,
scope=scope)
def setup_socket_gateway():
proxygw = py.execnet.PopenGateway()
gw = py.execnet.SocketGateway.new_remote(proxygw, ("127.0.0.1", 0))
gw.proxygw = proxygw
return gw
def teardown_socket_gateway(gw):
gw.exit()
gw.proxygw.exit()
def setup_ssh_gateway(request):
sshhost = request.getfuncargvalue('specssh').ssh
gw = py.execnet.SshGateway(sshhost)
return gw