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

[testenv]
extras =
  testing
deps =
  pytest-cov
commands =
  pytest \
    slow:  --hypothesis-profile=swh-web \
    !slow: --hypothesis-profile=swh-web-fast \
      --ignore-glob=*random_fixtures_test.py \
      --cov {envsitepackagesdir}/swh/web --cov-branch {posargs} {envsitepackagesdir}/swh/web

[testenv:flake8]
skip_install = true
deps =
  flake8
commands =
  {envpython} -m flake8 \
    --exclude=.tox,.git,__pycache__,.eggs,*.egg,node_modules

[testenv:mypy]
setenv = DJANGO_SETTINGS_MODULE = swh.web.settings.development
extras =
  testing
deps =
  mypy
commands =
  mypy swh

[testenv:black]
skip_install = true
deps =
  black==19.10b0
commands =
  {envpython} -m black --exclude swh/web/tests/resources --check 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
