[tox]
envlist = py37,py38,py39,py310,py311
skip_missing_interpreters = True
minversion = 2.4.0

[gh-actions]
python =
       3.7: py37
       3.8: py38
       3.9: py39
       3.10: py310
       3.11: py311

[testenv]
passenv = USERPROFILE HOMEDRIVE HOMEPATH PYTHONWARNINGS
usedevelop = True
extras = dev
deps =
         pyflakes
         {env:TWISTED:}
         {env:PYOPENSSL:}
commands =
         pyflakes setup.py src
         trial {posargs:foolscap}

# on my home machine, 'coverage --branch' increases runtime by 10% (over
# tests without any coverage tracking)
[testenv:coverage]
deps =
         pyflakes
         coverage
         {env:TWISTED:}
         {env:PYOPENSSL:}
commands =
         pyflakes setup.py src
         coverage run --branch -m foolscap.test.run_trial {posargs:foolscap}
         coverage xml

[testenv:upcoming-deprecations]
deps =
     # we want twisted[tls] (to get service-identity), but to do that with a
     # URL, you need the extra "#egg=twisted" bit
     git+https://github.com/twisted/twisted#egg=twisted[tls]
setenv =
         PYTHONWARNINGS=default::DeprecationWarning
commands =
         python misc/run-deprecations.py --warnings=_trial_temp/deprecation-warnings.log trial --rterrors {posargs:foolscap}
