1[tox]
2skip_missing_interpreters = True
3envlist =
4    py{36, 37, 38, 39, 310}
5    inst,
6    setup,
7    black,
8    isort,
9    flake8,
10    codespell,
11    doc,
12    stats
13
14
15[testenv]
16; Installing with deps errors with versioneer
17; deps = .[test]
18skip_install = True
19commands =
20    pip install .[test]
21    ; Use python -m to use the binary from the virtualenv if it is also
22    ; installed in the system. Do not use {envbindir} since it would require
23    ; to install it in tox virtualenv
24    python -m coverage run --append --module pytest -svv tests/unit
25
26# test that it can be installed with custom commands and clean env
27[testenv:inst]
28ignore_errors = True
29recreate = True
30
31[testenv:setup]
32skip_install = True
33    # this will fail until --process-dependency-links is not needed
34    # it needs to be commented since error code will be still 1
35commands = python setup.py install
36recreate = True
37
38[testenv:integration]
39ignore_errors = True
40deps = .[test]
41whitelist_externals =
42    bash
43commands =
44    bash -c tests/integration/run.sh {envtmpdir}/chutney
45
46[testenv:black]
47skip_install = True
48deps =
49  black
50commands =
51  black --check --diff sbws tests
52
53[testenv:isort]
54skip_install = True
55deps =
56  isort
57commands =
58  isort --check-only --diff sbws tests
59
60[testenv:flake8]
61skip_install = True
62deps = flake8-docstrings
63commands =
64  flake8 sbws tests
65
66[testenv:codespell]
67skip_install = True
68deps = codespell
69commands =
70  codespell sbws tests docs
71
72[testenv:clean]
73skip_install = True
74deps = coverage
75changedir = {toxinidir}
76commands = python -m coverage erase
77
78[testenv:stats]
79skip_install = True
80deps = coverage
81commands=
82    ; nothing to combine while not using several python versions
83    ; python -m coverage combine
84    python -m coverage report
85    python -m coverage html
86
87[testenv:doc]
88deps = .[doc]
89whitelist_externals = make
90changedir = docs
91commands =
92    make html
93    ; this requires build the pdf images
94    ; make latexpdf
95    ; make man
96
97; this requires Internet, it should not be in envlist
98[testenv:doclinks]
99deps = .[doc]
100whitelist_externals = make
101changedir = docs
102commands =
103    make linkcheck
104
105; Not included in the envlist, useful to run sometimes.
106[testenv:bandit]
107deps = bandit
108;  --skip B101  ; B101: assert_used
109commands = bandit -r --exclude sbws/_version.py sbws/ test
110
111; Requires Internet
112[testenv:safety]
113deps = safety
114commands = safety check
115