forked from ethereum/trinity
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
224 lines (191 loc) · 9.21 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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
[tox]
envlist=
py{36,37}-{eth1-core,p2p,p2p-trio,integration,lightchain_integration,eth2-core,eth2-fixtures,eth2-integration,eth1-components,eth2-utils,eth2-trio}
py36-long_run_integration
py36-rpc-blockchain
py36-rpc-state-{frontier,homestead,tangerine_whistle,spurious_dragon,byzantium,constantinople,petersburg,istanbul}
py37-rpc-state-{quadratic,sstore,zero_knowledge}
py37-{libp2p,eth2-components}
py{36,37}-lint
py{36,37}-lint-eth2
py{36,37}-wheel-cli
py36-docs
[flake8]
max-line-length= 100
exclude=
ignore=W504
[isort]
force_sort_within_sections=True
known_third_party=async_service,asyncio_run_in_process,hypothesis,pytest,async_generator,cytoolz,trio_typing,pytest_trio,factory,milagro_bls_binding,eth_tester
multi_line_output=3
include_trailing_comma=True
force_grid_wrap=0
use_parentheses=True
line_length=88
[testenv]
usedevelop=True
setenv =
MYPYPATH = {toxinidir}/stubs
passenv =
TRAVIS_EVENT_TYPE
commands=
eth1-core: pytest -n 4 {posargs:tests/core/}
eth2-core: pytest -n 4 {posargs:tests/eth2/core/}
eth2-utils: pytest -n 4 {posargs:tests/eth2/utils-tests/}
eth2-integration: pytest -n 4 {posargs:tests/eth2/integration/}
p2p: pytest -n 4 {posargs:tests/p2p}
p2p-trio: pytest -n 4 {posargs:tests-trio/p2p-trio}
eth1-components: pytest -n 4 {posargs:tests/components/tx_pool/}
eth2-components: pytest -n 4 {posargs:tests/components/eth2/}
rpc-blockchain: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'not GeneralStateTests'}
# Fork/VM-specific state transition tests; long-running categories run separately!
rpc-state-frontier: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py --fork Frontier -k 'GeneralStateTests and not stQuadraticComplexityTest and not stSStoreTest and not stZeroKnowledge'}
rpc-state-homestead: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py --fork Homestead -k 'GeneralStateTests and not stQuadraticComplexityTest and not stSStoreTest and not stZeroKnowledge'}
rpc-state-tangerine_whistle: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py --fork EIP150 -k 'GeneralStateTests and not stQuadraticComplexityTest and not stSStoreTest and not stZeroKnowledge'}
rpc-state-spurious_dragon: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py --fork EIP158 -k 'GeneralStateTests and not stQuadraticComplexityTest and not stSStoreTest and not stZeroKnowledge'}
# The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes
rpc-state-byzantium: pytest -n 3 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py --fork Byzantium -k 'GeneralStateTests and not stQuadraticComplexityTest and not stSStoreTest and not stZeroKnowledge'}
rpc-state-constantinople: pytest -n 3 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py --fork Constantinople -k 'GeneralStateTests and not stQuadraticComplexityTest and not stSStoreTest and not stZeroKnowledge'}
rpc-state-petersburg: pytest -n 3 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py --fork ConstantinopleFix -k 'GeneralStateTests and not stQuadraticComplexityTest and not stSStoreTest and not stZeroKnowledge'}
rpc-state-istanbul: pytest -n 3 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py --fork Istanbul -k 'GeneralStateTests and not stQuadraticComplexityTest and not stSStoreTest and not stZeroKnowledge'}
# Long-running categories.
rpc-state-quadratic: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and stQuadraticComplexityTest'}
rpc-state-sstore: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and stSStoreTest'}
rpc-state-zero_knowledge: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and stZeroKnowledge'}
lightchain_integration: pytest --integration {posargs:tests/integration/test_lightchain_integration.py}
deps = .[p2p,trinity,eth2,test,test-asyncio]
basepython =
py36: python3.6
py37: python3.7
[testenv:py36-p2p-trio]
deps = .[p2p,test,test-trio]
commands = pytest -n 4 {posargs:tests-trio/p2p-trio}
[testenv:py37-p2p-trio]
deps = .[p2p,test,test-trio]
commands = pytest -n 4 {posargs:tests-trio/p2p-trio}
[testenv:py36-eth2-trio]
deps = .[eth2,trinity,test,test-trio]
commands = pytest -n 4 {posargs:tests-trio/eth2} {posargs:tests-trio/trinity}
[testenv:py37-eth2-trio]
deps = .[eth2,trinity,test,test-trio]
commands = pytest -n 4 {posargs:tests-trio/eth2} {posargs:tests-trio/trinity}
[testenv:py36-docs]
whitelist_externals=
make
deps = .[p2p, trinity, eth2, doc]
passenv =
TRAVIS_EVENT_TYPE
commands=
make validate-docs
[common-wheel-cli]
deps=
pexpect
pytest
pytest-asyncio
wheel
whitelist_externals=
/bin/rm
/bin/bash
/bin/cd
commands=
/bin/rm -rf build dist
python setup.py sdist bdist_wheel
/bin/bash -c 'pip install --upgrade "$(ls dist/*.whl)""[p2p,trinity]" --progress-bar off'
pytest {posargs:tests/integration/ -k 'trinity_cli' --log-cli-level 0}
[testenv:py36-wheel-cli]
deps = {[common-wheel-cli]deps}
whitelist_externals = {[common-wheel-cli]whitelist_externals}
commands = {[common-wheel-cli]commands}
skip_install=true
usedevelop=false
[testenv:py37-wheel-cli]
deps = {[common-wheel-cli]deps}
whitelist_externals = {[common-wheel-cli]whitelist_externals}
commands = {[common-wheel-cli]commands}
skip_install=true
usedevelop=false
[common-integration]
deps = .[p2p,trinity,eth2,test,test-asyncio]
passenv =
TRAVIS_EVENT_TYPE
TRINITY_ETHERSCAN_API_KEY
commands=
pip install -e {toxinidir}/trinity-external-components/examples/peer_count_reporter
# We don't want to run these tests concurrently to avoid running into errors
# due to multiple Trinity instances competing for the same ports
# The `trinity_cli` tests are already run by the pyxx-wheel-cli jobs. No need to repeat them here
pytest --integration -n 1 {posargs:tests/integration/ -k 'not lightchain_integration and not trinity_cli'}
[testenv:py36-integration]
deps = {[common-integration]deps}
passenv = {[common-integration]passenv}
commands = {[common-integration]commands}
[testenv:py37-integration]
deps = {[common-integration]deps}
passenv = {[common-integration]passenv}
commands = {[common-integration]commands}
[testenv:py36-long_run_integration]
deps = {[common-integration]deps}
passenv = {[common-integration]passenv}
commands =
pytest -s {posargs:tests/trinity_long_run/ --log-cli-level DEBUG}
[testenv:py37-libp2p]
deps = .[p2p,trinity,eth2,test,test-asyncio]
passenv =
TRAVIS_EVENT_TYPE
commands =
pytest -n 1 {posargs:tests/libp2p}
[common-lint]
deps = .[p2p,trinity,lint]
commands=
flake8 --config {toxinidir}/tox.ini {toxinidir}/p2p
flake8 --config {toxinidir}/tox.ini {toxinidir}/tests/__init__.py
flake8 --config {toxinidir}/tox.ini {toxinidir}/tests/conftest.py
flake8 --config {toxinidir}/tox.ini {toxinidir}/tests/core
flake8 --config {toxinidir}/tox.ini {toxinidir}/tests/integration
flake8 --config {toxinidir}/tox.ini {toxinidir}/tests/json-fixtures-over-rpc
flake8 --config {toxinidir}/tox.ini {toxinidir}/tests/p2p
flake8 --config {toxinidir}/tox.ini {toxinidir}/tests/p2p-trio
flake8 --config {toxinidir}/tox.ini {toxinidir}/tests/components
flake8 --config {toxinidir}/tox.ini {toxinidir}/tests/trinity_long_run
flake8 --config {toxinidir}/tox.ini {toxinidir}/tests-trio
flake8 --config {toxinidir}/tox.ini --exclude {toxinidir}/trinity/components/eth2 {toxinidir}/trinity
flake8 --config {toxinidir}/tox.ini {toxinidir}/scripts
flake8 --config {toxinidir}/tox.ini {toxinidir}/setup.py
mypy -p trinity --config-file {toxinidir}/mypy.ini
mypy -p scripts --config-file {toxinidir}/mypy.ini
mypy -p p2p --config-file {toxinidir}/mypy.ini
[testenv:py36-lint]
deps = {[common-lint]deps}
commands= {[common-lint]commands}
[testenv:py37-lint]
deps = {[common-lint]deps}
commands= {[common-lint]commands}
[common-lint-eth2]
deps = .[eth2-lint,lint,eth2]
commands=
flake8 --config {toxinidir}/.flake8-eth2 eth2 trinity/components/eth2 tests/eth2 tests/libp2p tests/components/eth2 tests-trio/eth2
mypy -p eth2 -p trinity.components.eth2 --config-file {toxinidir}/mypy.ini
black --check eth2 trinity/components/eth2 tests/eth2 tests/libp2p tests/components/eth2 tests-trio/eth2
isort --recursive --check-only eth2 trinity/components/eth2 tests/eth2 tests/libp2p tests/components/eth2 tests-trio/eth2
[testenv:py36-lint-eth2]
deps = {[common-lint-eth2]deps}
commands= {[common-lint-eth2]commands}
[testenv:py37-lint-eth2]
deps = {[common-lint-eth2]deps}
commands= {[common-lint-eth2]commands}
[common-eth2-utils]
deps = .[eth2,eth2-extra,test]
[testenv:py36-eth2-utils]
deps = {[common-eth2-utils]deps}
[testenv:py37-eth2-utils]
deps = {[common-eth2-utils]deps}
[testenv:py36-eth2-fixtures]
deps = .[eth2,eth2-extra,test]
commands=
pytest -n 4 --config minimal {posargs:tests/eth2/fixtures/}
pytest -n 4 --config mainnet {posargs:tests/eth2/fixtures/}
[testenv:py37-eth2-fixtures]
deps = .[eth2,eth2-extra,test]
commands=
pytest -n 4 --config minimal {posargs:tests/eth2/fixtures/}
pytest -n 4 --config mainnet {posargs:tests/eth2/fixtures/}