[tox]
envlist = py27, py33, py34, py35, py36, pypy, jython, pylint
skip_missing_interpreters = true

[testenv:pylint]
deps =
   astroid>=1.5.1
   isort

commands = pylint -rn --rcfile={toxinidir}/pylintrc --load-plugins=pylint.extensions.docparams, pylint.extensions.mccabe {envsitepackagesdir}/pylint

[testenv]
deps =
   astroid>=1.5.1
   coverage
   isort
   mccabe
   backports.functools_lru_cache
   pytest
   pytest-xdist
   pyenchant

setenv =
    COVERAGE_FILE = {toxinidir}/.coverage.{envname}

commands =
    python -Wi {envsitepackagesdir}/coverage run -m pytest {envsitepackagesdir}/pylint/test/ {posargs:}

    ; Transform absolute path to relative path
    ; for compatibility with coveralls.io and fix 'source not available' error.
    ; If you can find a cleaner way is welcome
    python -c "import os;cov_strip_abspath = open(os.environ['COVERAGE_FILE'], 'r').read().replace('.tox' + os.sep + os.path.relpath('{envsitepackagesdir}', '{toxworkdir}') + os.sep, '');open(os.environ['COVERAGE_FILE'], 'w').write(cov_strip_abspath)"
changedir = {toxworkdir}

[testenv:coveralls]
setenv =
    COVERAGE_FILE = {toxinidir}/.coverage
passenv =
    *
deps =
    coverage
    coveralls
skip_install = true
commands =
    python {envsitepackagesdir}/coverage combine
    python {envsitepackagesdir}/coverage report --rcfile={toxinidir}/.coveragerc -m
    - coveralls --rcfile={toxinidir}/.coveragerc
changedir = {toxinidir}

[testenv:coverage-erase]
setenv =
    COVERAGE_FILE = {toxinidir}/.coverage
deps =
    coverage
skip_install = true
commands =
    python {envsitepackagesdir}/coverage erase
changedir = {toxinidir}
