[tox] envlist = {py27,py35,py36,py37,py38}{,-cov,-diffcov},qa,docs,perf skip_missing_interpreters = True minversion = 3.2 # Ensure that a late version of pip is used even on tox-venv. requires = tox-pip-version>=0.0.6 [testenv] pip_version = pip commands = !cov,!diffcov: python -m unittest discover {posargs} cov,diffcov: python -m coverage run {[coverage]rc} -m unittest discover {posargs} cov,diffcov: python -m coverage combine {[coverage]rc} cov: python -m coverage html {[coverage]rc} cov: python -m coverage xml {[coverage]rc} cov: python -m coverage report -m {[coverage]rc} --fail-under=100 diffcov: python -m coverage xml {[coverage]rc} diffcov: diff-cover coverage.xml --html-report diffcov.html diffcov: diff-cover coverage.xml --fail-under=100 usedevelop = True passenv = PYTHON* LANG* LC_* PYV deps = cov,diffcov: coverage>=4.5 diffcov: diff_cover pyfakefs setenv = cov: COVERAGE_PROCESS_START={[coverage]rcfile} cov: COVERAGE_OPTIONS="-p" cov: COVERAGE_FILE={toxinidir}/.coverage py27: PYV=2 py35,py36,py37,py38: PYV=3 # workaround deprecation warnings in pip's vendored packages PYTHONWARNINGS=ignore:Using or importing the ABCs:DeprecationWarning:pip._vendor extras = testing [testenv:qa] basepython = python3.7 commands = python -m flake8 importlib_metadata mypy importlib_metadata deps = mypy flake8 flufl.flake8 extras = [testenv:docs] basepython = python3 commands = sphinx-build importlib_metadata/docs build/sphinx/html extras = docs [testenv:perf] use_develop = False deps = ipython commands = python -m timeit -s 'import importlib_metadata' -- 'importlib_metadata.distribution("ipython")' [testenv:release] basepython = python3 deps = twine wheel setuptools keyring setuptools_scm passenv = TWINE_PASSWORD setenv = TWINE_USERNAME = {env:TWINE_USERNAME:__token__} commands = python setup.py sdist bdist_wheel python -m twine {posargs} upload dist/* [coverage] rcfile = {toxinidir}/coverage.ini rc = --rcfile="{[coverage]rcfile}" [flake8] hang-closing = True jobs = 1 max-line-length = 79 enable-extensions = U4