[tox]
envlist=black,flake8,mypy,py3

[testenv]
extras =
  testing
deps =
  swh.core[http] >= 0.0.61
  swh.scheduler[testing] >= 0.5.0
  amqp != 5.0.4
  pytest-cov
  dev: ipdb
commands =
  pytest \
  !dev: --cov={envsitepackagesdir}/swh/lister/ --cov-branch \
        --doctest-modules \
         {envsitepackagesdir}/swh/lister/ {posargs}

[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
