[tox] minversion = 4 envlist = black flake8 mypy py3-{minimal,full-cover} [testenv] extras = full: testing minimal: testing-minimal deps = cover: pytest-cov commands = pytest --doctest-modules \ cover: --cov={envsitepackagesdir}/swh/model --cov-branch \ full: {envsitepackagesdir}/swh/model \ minimal: {envsitepackagesdir}/swh/model/tests/test_cli.py -m 'not requires_optional_deps' \ {posargs} # --rootdir and --import-mode must NOT be used here due to the (hack-ish) way of # executing tests (using tox-in-tox); see below [testenv:py3{,7,8,9,10,11,12,13},pypy3{,5,6,7,8,9,10,11,12,13}] skip_install = true allowlist_externals = tox commands = tox run -e {env_name}-full-cover -- {posargs} tox run -e {env_name}-minimal [testenv:black] skip_install = true deps = black==23.1.0 commands = {envpython} -m black --check swh [testenv:flake8] skip_install = true deps = flake8==5.0.4 flake8-bugbear==22.9.23 pycodestyle==2.9.1 commands = {envpython} -m flake8 [testenv:mypy] extras = testing deps = mypy>1.4 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] allowlist_externals = make extras = testing deps = # fetch and install swh-docs git+https://gitlab.softwareheritage.org/swh/devel/swh-docs.git\#egg=swh.docs setenv = SWH_PACKAGE_DOC_TOX_BUILD = 1 # turn warnings into errors SPHINXOPTS = -W commands = make -I {env_dir}/share/swh-docs -C docs