summaryrefslogtreecommitdiff
path: root/tox.ini
blob: 468648663bd7d339b334789fdc212f8e7cdfc42e (plain)
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

[tox]
envlist = py26, py27, py33, py34, py35, py36, py37, py38, py39, py310, py311, py, pypy, pypy3, gmpy2py27, gmpy2py39, gmpy2py310, gmpypy27, gmpypy39, gmpypy310, codechecks

[testenv]
deps =
     py{33}: py<1.5
     py{33}: pytest<3.3
     py{33}: enum34
     py{33}: hypothesis<3.44
     py{26}: unittest2
     py{26}: hypothesis<3
     py{34}: attrs<21
     py{26,27,34,35,36,37,38,39,310,311,py,py3}: pytest
     py{27,34,35,36,37,38,39,310,311,py,py3}: hypothesis
     gmpy2py{27,39,310,311}: gmpy2
     gmpypy{27,39,310,311}: gmpy
     gmpy{2py27,2py39,2py310,2py311,py27,py39,py310,py311}: pytest
     gmpy{2py27,2py39,2py310,2py311,py27,py39,py310,py311}: hypothesis
# six==1.9.0 comes from setup.py install_requires
     py27_old_six: six==1.9.0
     py27_old_six: pytest
     py27_old_six: hypothesis
# those are the oldest versions of gmpy and gmpy2 on PyPI (i.e. oldest we can
# actually test), older versions may work, but are not easy to test
     py27_old_gmpy: gmpy==1.15
     py27_old_gmpy: pytest
     py27_old_gmpy: hypothesis
     py27_old_gmpy2: gmpy2==2.0.1
     py27_old_gmpy2: pytest
     py27_old_gmpy2: hypothesis
     py: pytest
     py: hypothesis
     py{33}: wheel<0.30
     coverage
commands = coverage run --branch -m pytest {posargs:src/ecdsa}

[testenv:py27_old_gmpy]
basepython = python2.7

[testenv:py27_old_gmpy2]
basepython = python2.7

[testenv:py27_old_six]
basepython = python2.7

[testenv:gmpypy27]
basepython=python2.7

[testenv:gmpypy39]
basepython=python3.9

[testenv:gmpypy310]
basepython=python3.10

[testenv:gmpypy311]
basepython=python3.11

[testenv:gmpy2py27]
basepython=python2.7

[testenv:gmpy2py39]
basepython=python3.9

[testenv:gmpy2py310]
basepython=python3.10

[testenv:gmpy2py311]
basepython=python3.11

[testenv:instrumental]
basepython = python2.7
deps =
     gmpy2
     instrumental
     hypothesis
     pytest>=4.6.0
     coverage
     six
commands =
         instrumental -t ecdsa -i '.*test_.*|.*_version|.*_compat|.*_sha3' {envbindir}/pytest {posargs:src/ecdsa}
         instrumental -f .instrumental.cov -sr

[testenv:coverage]
sitepackages=True
whitelist_externals=coverage
commands =
         coverage run --branch -m pytest --hypothesis-show-statistics {posargs:src/ecdsa}
         coverage html
         coverage report -m

[testenv:speed]
commands = {envpython} speed.py

[testenv:speedgmpy]
deps = gmpy
commands = {envpython} speed.py

[testenv:speedgmpy2]
deps = gmpy2
commands = {envpython} speed.py

[testenv:codechecks]
basepython = python3
deps =
     black==22.3.0
     flake8
commands =
         flake8 setup.py speed.py src
         black --check --line-length 79 .

[testenv:codeformat]
basepython = python3
deps =
     black==22.3.0
commands =
         black --line-length 79 .

[flake8]
exclude = src/ecdsa/test*.py
# We're just getting started. For now, ignore the following problems:
# E203: whitespace before ':' (this needs to be ignored for black compatibility)
# E741: ambiguous variable name
extend-ignore = E203,E741