summaryrefslogtreecommitdiff
path: root/tox.ini
blob: 01f9b71ba777afb4954463a5583cfe79ba5e0630 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
[tox]
envlist = py35, py36, py37, py38, pypy, pylint
skip_missing_interpreters = true

[testenv:pylint]
deps =
   git+https://github.com/pycqa/astroid@master
   isort
   pytest

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


[testenv:formatting]
basepython = python3
deps =
    black==19.10b0
    isort==4.3.21
commands =
    black --check . --exclude="tests/functional/|tests/input|tests/extensions/data|tests/regrtest_data/|tests/data/|venv|astroid|.tox"
    isort -rc . --check-only
changedir = {toxinidir}

[testenv:mypy]
basepython = python3
deps =
    typed-ast>=1.4
    mypy>=0.7,<1.0

commands =
    python -m mypy {toxinidir}/pylint/checkers --ignore-missing-imports {posargs:}

[testenv]
deps =
   https://github.com/PyCQA/astroid/tarball/master#egg=astroid-master-2.0
   coverage<5.0
   isort
   mccabe
   pytest
   pytest-xdist

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

commands =
    python -Wignore -m coverage run -m pytest {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-master-2.0
   pytest
   pytest-xdist
   pyenchant

commands =
    python -Wi -m pytest {toxinidir}/tests/ {posargs:} -k unittest_checker_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-erase]
setenv =
    COVERAGE_FILE = {toxinidir}/.coverage
deps =
    coverage<5
skip_install = true
commands =
    python -m coverage erase
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]
skipsdist = True
usedevelop = True
changedir = doc/
whitelist_externals = rm
deps =
   sphinx==2.0
   python-docs-theme

commands =
  pip install python_docs_theme
  rm -f features.rst
  python ./exts/pylint_features.py
  rm -f extensions.rst
  python ./exts/pylint_extensions.py
  sphinx-build -W -b html -d _build/doctrees . _build/html