some doc about the experiemntal pytest_gwmanage_newgateway hook.
and use process-scope for execnet test funcargs because of weird setup/teardown issues when running distributedly itself. --HG-- branch : trunk
This commit is contained in:
parent
5df58c619d
commit
6d84da39e4
|
@ -353,6 +353,26 @@ Python module. The return value is a custom `collection node`_ or None.
|
||||||
.. XXX or ``False`` if you want to indicate that the given item should not be collected.
|
.. XXX or ``False`` if you want to indicate that the given item should not be collected.
|
||||||
|
|
||||||
|
|
||||||
|
Gateway initialization (distributed testing)
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
(alpha) For distributed testing it can be useful to prepare the
|
||||||
|
remote environment. For this you can implement the newgateway hook:
|
||||||
|
|
||||||
|
.. sourcecode:: python
|
||||||
|
|
||||||
|
def pytest_gwmanage_newgateway(gateway, platinfo):
|
||||||
|
""" called after a gateway is instantiated. """
|
||||||
|
|
||||||
|
The ``gateway`` object here has a ``spec`` attribute which is an ``py.execnet.XSpec``
|
||||||
|
object, which has attributes that map key/values as specified from a ``--txspec``
|
||||||
|
option. The platinfo object is a dictionary with information about the remote process:
|
||||||
|
|
||||||
|
* ``version``: remote python's ``sys.version_info``
|
||||||
|
* ``platform``: remote ``sys.platform``
|
||||||
|
* ``cwd``: remote ``os.getcwd``
|
||||||
|
|
||||||
|
|
||||||
.. _`collection process`:
|
.. _`collection process`:
|
||||||
.. _`collection node`:
|
.. _`collection node`:
|
||||||
.. _`test collection`:
|
.. _`test collection`:
|
||||||
|
|
|
@ -10,7 +10,7 @@ def pytest_generate_tests(metafunc):
|
||||||
metafunc.addcall(id=gwtype, param=gwtype)
|
metafunc.addcall(id=gwtype, param=gwtype)
|
||||||
|
|
||||||
def pytest_funcarg__gw(request):
|
def pytest_funcarg__gw(request):
|
||||||
scope = "module"
|
scope = "session" # XXX module causes problems with -n 3!
|
||||||
if request.param == "popen":
|
if request.param == "popen":
|
||||||
return request.cached_setup(
|
return request.cached_setup(
|
||||||
setup=py.execnet.PopenGateway,
|
setup=py.execnet.PopenGateway,
|
||||||
|
|
Loading…
Reference in New Issue