[tox] envlist = py26, py27, py35, py36, py37, py38, py39, py310, py311, py312, py, pypy, pypy3, gmpy2py27, gmpy2py39, gmpy2py310, gmpypy27, gmpypy39, gmpypy310, codechecks [testenv] deps = py{26}: unittest2 py{26}: hypothesis<3 py{26,27,35,36,37,38,39,310,311,312,py,py3}: pytest py{27,35,36,37,38,39,310,311,312,py,py3}: hypothesis gmpy2py{27,39,310,311,312}: gmpy2 gmpypy{27,39,310,311,312}: gmpy gmpy{2py27,2py39,2py310,2py311,2py312,py27,py39,py310,py311,py312}: pytest gmpy{2py27,2py39,2py310,2py311,2py312,py27,py39,py310,py311,py312}: 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 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:gmpypy312] basepython=python3.12 [testenv:gmpy2py27] basepython=python2.7 [testenv:gmpy2py39] basepython=python3.9 [testenv:gmpy2py310] basepython=python3.10 [testenv:gmpy2py311] basepython=python3.11 [testenv:gmpy2py312] basepython=python3.12 [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