[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

[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
sitepackages = False
recreate = False
commands =
    unit: py.test -xv --cov=celery --cov-report=xml
    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://

    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

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: python2.7

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

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

[testenv:linkcheck]
commands =
    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