diff --git a/tox.ini b/tox.ini index 6e8c7ae..a632e51 100644 --- a/tox.ini +++ b/tox.ini @@ -1,75 +1,87 @@ [tox] envlist = black,flake8,mypy,py3 [testenv] extras = testing deps = pytest-cov commands = + # Under certain circumstances (e.g. in jenkins), the swh.journal kafka server + # fixture (which makes librdkafka spawn internal threads, that can't be torn + # down), and the swh.provenance rabbitmq storage server fixture (which is + # brought up by multiprocessing within the pytest runner context) poorly + # interact, causing the Python interpreter to SIGABRT. + # Running the tests for the journal client separately from the rest allow to + # isolate the fixtures from one another and lets the tests run to completion. + pytest {envsitepackagesdir}/swh/provenance \ + --cov={envsitepackagesdir}/swh/provenance \ + --cov-branch \ + -k 'journal' {posargs} pytest --doctest-modules \ {envsitepackagesdir}/swh/provenance \ --cov={envsitepackagesdir}/swh/provenance \ - --cov-branch {posargs} + --cov-branch --cov-append \ + -k 'not journal' {posargs} passenv = HOME # required by pytest-rabbitmq [testenv:black] skip_install = true deps = black==22.3.0 commands = {envpython} -m black --check swh [testenv:flake8] skip_install = true deps = flake8==4.0.1 flake8-bugbear==22.3.23 commands = {envpython} -m flake8 [testenv:mypy] extras = testing deps = mypy==0.942 commands = mypy swh # build documentation outside swh-environment using the current # git HEAD of swh-docs, is executed on CI for each diff to prevent # breaking doc build [testenv:sphinx] whitelist_externals = make usedevelop = true extras = testing deps = # fetch and install swh-docs in develop mode -e git+https://forge.softwareheritage.org/source/swh-docs#egg=swh.docs setenv = SWH_PACKAGE_DOC_TOX_BUILD = 1 # turn warnings into errors SPHINXOPTS = -W commands = make -I ../.tox/sphinx/src/swh-docs/swh/ -C docs # build documentation only inside swh-environment using local state # of swh-docs package [testenv:sphinx-dev] whitelist_externals = make usedevelop = true extras = testing deps = # install swh-docs in develop mode -e ../swh-docs setenv = SWH_PACKAGE_DOC_TOX_BUILD = 1 # turn warnings into errors SPHINXOPTS = -W commands = make -I ../.tox/sphinx-dev/src/swh-docs/swh/ -C docs