-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtox.ini
143 lines (129 loc) · 3.11 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
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Tox configuration file
# Read more under https://tox.wiki/
[tox]
minversion = 3.24
envlist =
default
pep8
isolated_build = True
[testenv]
description = Invoke pytest + unittest to run *all* automated tests
usedevelop = True
setenv =
TOXINIDIR = {toxinidir}
PYTHONDONTWRITEBYTECODE=1
passenv =
HOME
I_KNOW_WHAT_I_DO
DEBUG
extras =
testing
commands =
# use -- -k to check specific tests using keywords
pytest {posargs}
[testenv:pytest]
description = Invoke pytest to run pytest-styled tests only
passenv =
HOME
I_KNOW_WHAT_I_DO
DEBUG
extras =
testing
commands =
pytest tests/pytest {posargs}
[testenv:unittest]
description = Invoke unittest to run unittest-styled tests only
passenv =
HOME
I_KNOW_WHAT_I_DO
DEBUG
extras =
testing
commands =
python -m unittest discover -b -v -s tests.unittest -k {posargs:''}
[testenv:integration]
description = Invoke unittest to run integration tests
passenv =
HOME
DEBUG
extras =
testing
commands =
python -m unittest discover -v -s tests.integration -k {posargs:''}
[stestr]
test_path=./tests/unittest
[testenv:stestr]
description = Invoke stestr to run unittest tests
passenv =
HOME
I_KNOW_WHAT_I_DO
DEBUG
extras =
testing
deps =
stestr
commands =
stestr run
[testenv:pep8]
description = Invoke flake8 to run pep8 tests
deps =
flake8
extras =
testing
commands =
# flake8 --max-line-length=80
flake8
[testenv:venv]
usedevelop = True
extra =
commands =
[testenv:{build,clean}]
description =
build: Build the package in isolation according to PEP517, see https://github.com/pypa/build
clean: Remove old distribution files and temporary build artifacts (./build and ./dist)
# https://setuptools.pypa.io/en/stable/build_meta.html#how-to-use-it
skip_install = True
changedir = {toxinidir}
deps =
build: build[virtualenv]
passenv =
SETUPTOOLS_*
commands =
clean: python -c 'import shutil; [shutil.rmtree(p, True) for p in ("build", "dist", "docs/_build")]'
clean: python -c 'import pathlib, shutil; [shutil.rmtree(p, True) for p in pathlib.Path("src").glob("*.egg-info")]'
build: python -m build {posargs}
[testenv:publish]
description =
Publish the package you have been developing to a package index server.
By default, it uses testpypi. If you really want to publish your package
to be publicly accessible in PyPI, use the `-- --repository pypi` option.
skip_install = True
changedir = {toxinidir}
passenv =
# See: https://twine.readthedocs.io/en/latest/
TWINE_USERNAME
TWINE_PASSWORD
TWINE_REPOSITORY
TWINE_REPOSITORY_URL
deps = twine
commands =
python -m twine check dist/*
python -m twine upload {posargs:--repository {env:TWINE_REPOSITORY:testpypi}} dist/*
[flake8]
# Some sane defaults for the code style checker flake8
max_line_length = 80
extend_ignore = E203, W503
# ^ Black-compatible
# E203 and W503 have edge cases handled by black
exclude =
.tox
build
dist
.eggs
docs/conf.py
[gh-actions]
python =
3.7: default, pep8
3.8: default, pep8
3.9: default, pep8
3.10: default, pep8