summaryrefslogtreecommitdiff
path: root/tox.ini
blob: 6a0142b5aeffae6fa6f00f9244ac8d0486d20995 (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
[tox]
envlist = py27, py34, py35, py36, py37, pypy, pylint
skip_missing_interpreters = true

[testenv:pylint]
commands = pylint -rn --rcfile={toxinidir}/pylintrc {toxinidir}/astroid

# Use pylint master when version info is fixed
# pylint: git+https://github.com/pycqa/pylint@master
[testenv]
deps =
  py27,pypy: backports.functools_lru_cache
  py27,pypy: enum34
  lazy-object-proxy
  ; we have a brain for nose
  ; we use pytest for tests
  nose
  py27,py34,py35,py36: numpy
  py27,py34,py35,py36: attr
  pytest
  python-dateutil
  py27,pypy: singledispatch
  six
  wrapt
  pylint: pylint
  coverage

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

commands =
    ; --pyargs is needed so the directory astroid doesn't shadow the tox
    ; installed astroid package
    ; This is important for tests' test data which create files
    ; inside the package
    python -Wi {envsitepackagesdir}/coverage run -m pytest --pyargs astroid {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('{toxinidir}' + os.sep, '');open(os.environ['COVERAGE_FILE'], 'w').write(cov_strip_abspath)"

[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}