[pytest-dev] Extending xdist

Ivan Kalinin pupssman at gmail.com
Fri Nov 14 23:53:10 CET 2014


Hello there, fellow developers.

I am now trying to add xdist intergration capabilities for my plugin,
pytest-allure-adaptor and I've run into substantial problems with
understanding xdist. Efforts so far are discussed here:
https://github.com/allure-framework/allure-python/issues/8 .

As far as the reverse-enginering leeds me, xdist is running a `master`
process and `slave` processes, transmitting pytest's Items to slaves and
receiving test results from those. It does so by hand-picking into the
pytest hooks, calling some of them on the remote site and some on the
master side, effectively achieving the `separated` pytest session.

However, pytest-allure-adaptor, being a report-generation-kind plugin,
relies significantly on the hook specification and call order, and xdist's
hook manipulation renders the allure adaptor incapable of working properly.

Here come the questions:

1) Is there any kind of documentation / guide lines / examples of xdist's
internal architecture and integration?

2) Are there any planned activity on xdist internals? Or any kind of
overhaul? Do xdist developers consider its use of hook an API? Is it sane
to rely on xdist internal workings retaining campatibility for at least
some time?

3) What's recommended / renown way of developing an xdist-capable pytest
plugin?

4) Is it sane to rely on pytest hook call order at all? What is the most
other-plugin-friendly way to override / modify pytest hooks?

Hope for best and thanks in advance for your time.

Best, Ivan.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pytest-dev/attachments/20141115/157f7c63/attachment.html>


More information about the pytest-dev mailing list