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

    flake8
    flakeplus
    apicheck
    configcheck
    pydocstyle
    isort-check
    bandit

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

    2.7: -r{toxinidir}/requirements/test-ci-default.txt
    3.4,3.5,3.6: -r{toxinidir}/requirements/test-ci-default.txt
    pypy: -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
    isort-check: -r{toxinidir}/requirements/test-ci-default.txt
    isort-check: isort>=4.3.4
    isort-check: Sphinx==1.6.5
    bandit: bandit
sitepackages = False
recreate = False
commands =
    unit: py.test -xv --cov=celery --cov-report=xml --cov-report term
    integration: py.test -xsv t/integration
setenv =
    WORKER_LOGLEVEL = INFO
    PYTHONIOENCODING = UTF-8

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

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

    dynamodb: TEST_BROKER=redis://
    dynamodb: TEST_BACKEND=dynamodb://@localhost:8000
    dynamodb: AWS_ACCESS_KEY_ID=test_aws_key_id
    dynamodb: AWS_SECRET_ACCESS_KEY=test_aws_secret_key
PASSENV =
    TRAVIS
basepython =
    2.7: python2.7
    3.4: python3.4
    3.5: python3.5
    3.6: python3.6
    pypy: pypy
    flake8,flakeplus,apicheck,linkcheck,configcheck,pydocstyle,isort-check,bandit: python2.7
usedevelop = True

[testenv:apicheck]
setenv =
    PYTHONHASHSEED = 100
commands =
    sphinx-build -j2 -b apicheck -d {envtmpdir}/doctrees docs docs/_build/apicheck

[testenv:configcheck]
commands =
    sphinx-build -j2 -b configcheck -d {envtmpdir}/doctrees docs docs/_build/configcheck

[testenv:linkcheck]
commands =
    sphinx-build -j2 -b linkcheck -d {envtmpdir}/doctrees docs docs/_build/linkcheck

[testenv:bandit]
commands =
    bandit -b bandit.json -r celery/

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

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

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

[testenv:isort-check]
commands = isort -j2 --project celery --diff --order-by-type -rc -c {toxinidir}/celery {toxinidir}/t