forked from ethereum/trinity
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
130 lines (111 loc) · 4.61 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
[tox]
envlist=
py{36,37}-{core,p2p,integration,lightchain_integration,eth2}
py{36}-long_run_integration
py{36}-rpc-state-{frontier,homestead,tangerine_whistle,spurious_dragon,byzantium,constantinople,quadratic}
py{36}-rpc-blockchain
py{36,37}-lint
py{36,37}-wheel-cli
py36-docs
[flake8]
max-line-length= 100
exclude=
ignore=
[testenv]
usedevelop=True
passenv =
TRAVIS_EVENT_TYPE
commands=
core: pytest -n 4 {posargs:tests/core/}
eth2: pytest -n 4 {posargs:tests/eth2}
p2p: pytest -n 4 {posargs:tests/p2p}
rpc-blockchain: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'not GeneralStateTests'}
rpc-state-frontier: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Frontier'}
rpc-state-homestead: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Homestead'}
rpc-state-tangerine_whistle: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and EIP150'}
rpc-state-spurious_dragon: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and EIP158'}
# 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 -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}
rpc-state-constantinople: pytest -n 3 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Constantinople'}
rpc-state-quadratic: pytest -n 4 {posargs:tests/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and stQuadraticComplexityTest'}
lightchain_integration: pytest --integration {posargs:tests/integration/test_lightchain_integration.py}
deps = .[p2p,trinity,eth2,test]
basepython =
py36: python3.6
py37: python3.7
[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]"'
pytest {posargs:tests/integration/ -k 'trinity_cli'}
[testenv:py36-wheel-cli]
deps = {[common-wheel-cli]deps}
whitelist_externals = {[common-wheel-cli]whitelist_externals}
commands = {[common-wheel-cli]commands}
skip_install=true
use_develop=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
use_develop=false
[common-integration]
deps = .[p2p,trinity,eth2,test]
passenv =
TRAVIS_EVENT_TYPE
commands=
pip install -e {toxinidir}/trinity-external-plugins/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
pytest --integration -n 1 {posargs:tests/integration/ -k 'not lightchain_integration'}
[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 -n 1 {posargs:tests/trinity_long_run/}
[common-lint]
deps = .[p2p,trinity,lint,eth2]
setenv=MYPYPATH={toxinidir}:{toxinidir}/stubs
commands=
flake8 {toxinidir}/p2p
flake8 {toxinidir}/tests
flake8 {toxinidir}/trinity
flake8 {toxinidir}/scripts
flake8 {toxinidir}/eth2
# TODO: Drop --ignore-missing-imports once we have type annotations for eth_utils, coincurve and cytoolz
mypy --follow-imports=silent --warn-unused-ignores --ignore-missing-imports --no-strict-optional --check-untyped-defs --disallow-incomplete-defs --disallow-untyped-defs --disallow-any-generics -p p2p -p trinity -p eth2
[testenv:py36-lint]
deps = {[common-lint]deps}
setenv = {[common-lint]setenv}
commands= {[common-lint]commands}
[testenv:py37-lint]
deps = {[common-lint]deps}
setenv = {[common-lint]setenv}
commands= {[common-lint]commands}