| [tox] |
| minversion = 2.4 |
| envlist = py36, py37, py38, py39, pypy, pylint, benchmark |
| skip_missing_interpreters = true |
| |
| |
| [testenv:pylint] |
| deps = |
| git+https://github.com/pycqa/astroid@master |
| pytest |
| commands = |
| # This would be greatly simplified by a solution for https://github.com/PyCQA/pylint/issues/352 |
| pylint -rn --rcfile={toxinidir}/pylintrc --load-plugins=pylint.extensions.docparams, pylint.extensions.mccabe \ |
| {toxinidir}/pylint \ |
| {toxinidir}/tests/message/ \ |
| {toxinidir}/tests/checkers/ \ |
| {toxinidir}/tests/extensions/ \ |
| {toxinidir}/tests/utils/ \ |
| {toxinidir}/tests/acceptance/ \ |
| {toxinidir}/tests/conftest.py \ |
| {toxinidir}/tests/test_config.py \ |
| {toxinidir}/tests/test_func.py \ |
| {toxinidir}/tests/test_functional.py \ |
| {toxinidir}/tests/test_import_graph.py \ |
| {toxinidir}/tests/test_pragma_parser.py \ |
| {toxinidir}/tests/test_pylint_runners.py \ |
| {toxinidir}/tests/test_regr.py \ |
| {toxinidir}/tests/test_self.py \ |
| {toxinidir}/tests/unittest_config.py \ |
| {toxinidir}/tests/lint/ \ |
| {toxinidir}/tests/unittest_pyreverse_diadefs.py \ |
| {toxinidir}/tests/unittest_pyreverse_inspector.py \ |
| {toxinidir}/tests/unittest_pyreverse_writer.py \ |
| {toxinidir}/tests/unittest_reporters_json.py \ |
| {toxinidir}/tests/unittest_reporting.py |
| |
| |
| [testenv:formatting] |
| basepython = python3 |
| deps = |
| pre-commit |
| sphinx |
| pytest |
| commands = |
| pre-commit run --all-files |
| changedir = {toxinidir} |
| |
| |
| [testenv:mypy] |
| basepython = python3 |
| deps = |
| pre-commit |
| commands = |
| pre-commit run mypy --all-files |
| |
| |
| [testenv] |
| deps = |
| https://github.com/PyCQA/astroid/tarball/master#egg=astroid |
| coverage<5.0 |
| mccabe |
| isort |
| pytest |
| pytest-xdist |
| pytest-benchmark |
| pytest-profiling |
| setenv = |
| COVERAGE_FILE = {toxinidir}/.coverage.{envname} |
| commands = |
| ; Run tests, ensuring all benchmark tests do not run |
| python -Wignore -m coverage run -m pytest --benchmark-disable {toxinidir}/tests/ {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:spelling] |
| deps = |
| https://github.com/PyCQA/astroid/tarball/master#egg=astroid |
| pytest |
| pytest-xdist |
| pyenchant |
| commands = |
| python -Wi -m pytest {toxinidir}/tests/ {posargs:} -k unittest_spelling |
| changedir = {toxworkdir} |
| |
| |
| [testenv:coveralls] |
| setenv = |
| COVERAGE_FILE = {toxinidir}/.coverage |
| passenv = |
| * |
| deps = |
| coverage<5.0 |
| coveralls |
| skip_install = true |
| commands = |
| python -m coverage combine |
| python -m coverage report --rcfile={toxinidir}/.coveragerc -m |
| - coveralls --rcfile={toxinidir}/.coveragerc |
| changedir = {toxinidir} |
| |
| |
| [testenv:coverage-html] |
| setenv = |
| COVERAGE_FILE = {toxinidir}/.coverage |
| deps = |
| coverage<5 |
| skip_install = true |
| commands = |
| python -m coverage combine |
| python -m coverage html --ignore-errors --rcfile={toxinidir}/.coveragerc |
| changedir = {toxinidir} |
| |
| |
| [testenv:docs] |
| usedevelop = True |
| changedir = doc/ |
| extras = |
| docs |
| commands = |
| sphinx-build -W -b html -d _build/doctrees . _build/html |
| |
| |
| [testenv:benchmark] |
| deps = |
| https://github.com/PyCQA/astroid/tarball/master#egg=astroid |
| coverage<5.0 |
| mccabe |
| pytest |
| pytest-xdist |
| pygal |
| pytest-benchmark |
| commands = |
| ; Run the only the benchmark tests, grouping output and forcing .json output so we |
| ; can compare benchmark runs |
| python -Wi -m pytest --exitfirst \ |
| --failed-first \ |
| --benchmark-only \ |
| --benchmark-save=batch_files \ |
| --benchmark-save-data \ |
| --benchmark-autosave \ |
| {toxinidir}/tests \ |
| --benchmark-group-by="group" \ |
| {posargs:} |
| |
| [testenv:profile_against_external] |
| deps = |
| https://github.com/PyCQA/astroid/tarball/master#egg=astroid |
| gprof2dot |
| mccabe |
| pytest |
| pytest-profiling |
| pytest-xdist |
| setenv = |
| PYTEST_PROFILE_EXTERNAL = 1 |
| commands = |
| python -Wi -m pytest --exitfirst \ |
| --profile-svg \ |
| {toxinidir}/tests/profile/test_profile_against_externals.py |
| changedir = {toxworkdir} |