-
Notifications
You must be signed in to change notification settings - Fork 5
/
tox.ini
92 lines (81 loc) · 3.09 KB
/
tox.ini
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
[tox]
# In practice, you can optimize by first running basic tests
# 'pep8,bandit,docs' and only after those succeed go on to
# run the remaining (default) tests. E.g.,
# $ tox -e pep8,bandit,docs && tox -e clean,py39,py310,py311,bats,pypi,report
envlist = clean,pep8,bandit,docs,py39,py310,py311,bats,pypi,report
skip_missing_interpreters = True
skipsdists = True
requires = tox-conda
setuptools>=40.9.0
setuptools_scm
[testenv]
setenv =
VIRTUAL_ENV={envdir}
PYTHONPATH={toxinidir}:{toxinidir}/psec
distribute = False
install_command = python -m pip install {opts} {packages}
conda_deps =
pytest
pytest-cov
conda_channels =
conda-forge
depends =
{py39,py310,py311}: clean
report: py39,py310,py311
# Make sure these match setup.py!
deps = -r{toxinidir}/requirements-dev.txt
-r{toxinidir}/requirements.txt
commands = pytest {posargs} --cov=psec --cov-append --cov-report=term-missing
[testenv:report]
deps = coverage
skip_install = true
commands =
coverage report
coverage html
[testenv:clean]
deps = coverage
skip_install = true
commands = coverage erase
; If you want to make tox run the tests with the same versions, create a
; requirements.txt with the pinned versions and uncomment the following lines:
; deps =
; -r{toxinidir}/requirements.txt
[testenv:pypi]
basepython = python3.9
deps = -r{toxinidir}/requirements-dev.txt
whitelist_externals = make
commands = make twine-check
[testenv:pep8]
basepython = python3.9
deps = -r{toxinidir}/requirements-dev.txt
commands = flake8 psec tests docs/conf.py setup.py
[testenv:bandit]
basepython = python3.9
; Run security linter
deps = -r{toxinidir}/requirements-dev.txt
commands = bandit -c bandit.yaml -r psec -x tests -n5
[testenv:docs]
basepython = python3.9
deps = -r{toxinidir}/requirements-dev.txt
whitelist_externals = make
commands =
make clean install-active
sphinx-build -b html docs docs/_build
[testenv:bats]
; Run bats unit tests
; Deal with this by requiring docutils==0.15:
; # Traceback (most recent call last):
; # File "/Users/dittrich/git/python_secrets/.tox/bats/lib/python3.7/site-packages/cliff/help.py", line 43, in __call__
; # factory = ep.load()
; # File "/Users/dittrich/git/python_secrets/.tox/bats/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2444, in load
; # self.require(*args, **kwargs)
; # File "/Users/dittrich/git/python_secrets/.tox/bats/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2467, in require
; # items = working_set.resolve(reqs, env, installer, extras=self.extras)
; # File "/Users/dittrich/git/python_secrets/.tox/bats/lib/python3.7/site-packages/pkg_resources/__init__.py", line 792, in resolve
; # raise VersionConflict(dist, req).with_context(dependent_req)
; # pkg_resources.ContextualVersionConflict: (docutils 0.16 (/Users/dittrich/git/python_secrets/.tox/bats/lib/python3.7/site-packages), Requirement.parse('docutils<0.16,>=0.10'), {'botocore'})
deps = -r{toxinidir}/requirements-dev.txt
-r{toxinidir}/requirements.txt
whitelist_externals = make
commands = make test-bats