1[tox]
2envlist =
3    py27,
4    py35,
5    py36,
6    py37,
7    py38,
8    py39,
9    pypy,
10    pypy3,
11    lint,
12    coverage
13
14[testenv]
15commands =
16    {envbindir}/buildout -c {toxinidir}/buildout.cfg buildout:directory={envdir} buildout:develop={toxinidir} install test
17    coverage run {envbindir}/test {posargs:-cv}
18deps =
19    zc.buildout
20    coverage
21setenv =
22    COVERAGE_FILE=.coverage.{envname}
23skip_install = true
24
25[testenv:coverage]
26basepython = python3.6
27skip_install = true
28deps = coverage
29depends =
30    py27,
31    py35,
32    py36,
33    py37,
34    py38,
35    py39,
36    pypy,
37    pypy3,
38setenv =
39    COVERAGE_FILE=.coverage
40commands =
41    coverage erase
42    coverage combine
43    coverage html
44    coverage xml
45    coverage report
46
47[testenv:lint]
48basepython = python3.6
49skip_install = true
50
51deps =
52    isort
53    flake8
54    # helper to generate HTML reports:
55    flake8-html
56    # Useful flake8 plugins that are Python and Plone specific:
57    flake8-coding
58    flake8-debugger
59    flake8-deprecated
60    flake8-todo
61    mccabe
62    # Potential flake8 plugins that should be used:  # TBD
63    #flake8-blind-except
64    #flake8-commas
65    #flake8-docstrings
66    #flake8-mypy
67    #flake8-pep3101
68    #flake8-plone-hasattr
69    #flake8-string-format
70    #flake8_strict
71    #flake8-quotes
72
73commands =
74    - isort --check-only --diff {toxinidir}/src setup.py
75    flake8 src setup.py
76