[tox]
minversion = 4
envlist =
black
flake8
mypy
py3
[testenv]
extras =
testing
deps =
pytest-cov
dev: ipdb
commands =
pytest --doctest-modules \
!slow: --hypothesis-profile=fast \
slow: --hypothesis-profile=slow \
--rootdir {envsitepackagesdir} \
--cov={envsitepackagesdir}/swh/scheduler \
--cov-branch \
{envsitepackagesdir}/swh/scheduler \
{posargs}
# --rootdir (with --import-mode from pytest.ini) are required to make tests
# that depends on the test file to be a proper submodule of the swh namespace
# after migration to PEP420 (implicit namespace).
[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.8.0
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