[tox]
envlist=
    coveralls, pylint, flake8, pydocstyle, py27, py34, py35, py36, py37, py38, pypy, pypy3

[testenv]
deps=
    unittest2
extras=
    yaml
    flask
    aiohttp
commands=
    unit2 discover -s tests/unit -p test_*_py3*.py

[testenv:coveralls]
passenv=TRAVIS TRAVIS_JOB_ID TRAVIS_BRANCH DEPENDENCY_INJECTOR_DEBUG_MODE
basepython=python3.8
usedevelop=True
deps=
    {[testenv]deps}
    cython
    coverage
    coveralls
commands=
    coverage erase
    coverage run --rcfile=./.coveragerc -m unittest2 discover -s tests/unit/ -p test_*_py3*.py
    coverage report --rcfile=./.coveragerc
    coveralls

[testenv:py27]
extras=
    yaml
    flask
commands=
    unit2 discover -s tests/unit -p test_*_py2_py3.py

[testenv:py34]
extras=
    flask
commands=
    unit2 discover -s tests/unit -p test_*_py3.py

[testenv:py35]
extras=
    yaml
    flask
commands=
    unit2 discover -s tests/unit -p test_*_py3.py

[testenv:pypy]
extras=
    yaml
    flask
commands=
    unit2 discover -s tests/unit -p test_*_py2_py3.py

[testenv:pylint]
deps=
    pylint
commands=
    - pylint -f colorized --rcfile=./.pylintrc src/dependency_injector

[testenv:flake8]
deps=
    flake8
commands=
    flake8 --max-complexity=10 src/dependency_injector/
    flake8 --max-complexity=10 examples/

[testenv:pydocstyle]
deps=
    pydocstyle
commands=
    pydocstyle src/dependency_injector/
    pydocstyle examples/

[testenv:mypy]
deps=
    mypy
commands=
    mypy tests/typing