[tox]
envlist =
    {2.7,pypy,3.4,3.5,pypy3}-unit
    {2.7,pypy,3.4,3.5,pypy3}-integration-{rabbitmq,redis}

    flake8
    flakeplus
    apicheck
    configcheck
    pydocstyle
    cov

[testenv]
deps=
    -r{toxinidir}/requirements/default.txt
    -r{toxinidir}/requirements/test.txt

    2.7,cov: -r{toxinidir}/requirements/test-ci-default.txt
    3.4,3.5: -r{toxinidir}/requirements/test-ci-default.txt
    pypy,pypy3: -r{toxinidir}/requirements/test-ci-base.txt

    integration: -r{toxinidir}/requirements/test-integration.txt

    linkcheck,apicheck,configcheck: -r{toxinidir}/requirements/docs.txt
    flake8,flakeplus,pydocstyle: -r{toxinidir}/requirements/pkgutils.txt
sitepackages = False
recreate = False
commands =
    pip install -U -r{toxinidir}/requirements/dev.txt
    unit: py.test -xv
    integration: py.test -xsv t/integration
setenv =
    WORKER_LOGLEVEL = INFO

    rabbitmq: TEST_BROKER=pyamqp://
    rabbitmq: TEST_BACKEND=rpc

    redis: TEST_BROKER=redis://
    redis: TEST_BACKEND=redis://

basepython =
    2.7: python2.7
    3.4: python3.4
    3.5: python3.5
    pypy: pypy
    pypy3: pypy3
    flake8,flakeplus,apicheck,linkcheck,configcheck,pydocstyle,cov: python2.7

[testenv:cov]
commands =
    pip install -U -r{toxinidir}/requirements/dev.txt
    py.test -xv --cov=celery --cov-report=xml
    coverage xml
    codecov -e TOXENV --token=bb6ecc30-6d40-4f57-942e-406f5f579198 --required

[testenv:apicheck]
commands =
    pip install -U -r{toxinidir}/requirements/dev.txt
    sphinx-build -b apicheck -d {envtmpdir}/doctrees docs docs/_build/apicheck

[testenv:configcheck]
commands =
    pip install -U -r{toxinidir}/requirements/dev.txt
    sphinx-build -b configcheck -d {envtmpdir}/doctrees docs docs/_build/configcheck

[testenv:linkcheck]
commands =
    pip install -U -r{toxinidir}/requirements/dev.txt
    sphinx-build -W -b linkcheck -d {envtmpdir}/doctrees docs docs/_build/linkcheck

[testenv:flake8]
commands =
    flake8 {toxinidir}/celery {toxinidir}/t

[testenv:flakeplus]
commands =
    flakeplus --2.7 {toxinidir}/celery {toxinidir}/t

[testenv:pydocstyle]
commands =
    pydocstyle {toxinidir}/celery