[tox]
envlist =
  lint
  py{27,35,36,37}
  py37-oldpy3deps
  py27-oldpy2deps
  coverage-report
  manifest
  pypi-description
isolated_build = true

[testenv]
deps =
  oldpy2deps: redis==2.6.2
  oldpy2deps: flask==0.8.0
  oldpy2deps: werkzeug==0.8.3
  oldpy3deps: redis==2.6.2
  oldpy3deps: flask==0.11.1
  oldpy3deps: werkzeug==0.11.15
extras = tests
commands = coverage run --parallel-mode -m pytest {posargs}

[testenv:coverage-report]
basepython = python3.7
skip_install = true
deps = coverage
commands =
    coverage combine
    coverage report

[testenv:lint]
basepython = python3.7
skip_install = true
deps = pre-commit
passenv = HOMEPATH  # needed on Windows
commands = pre-commit run --all-files

[testenv:manifest]
basepython = python3.7
skip_install = true
deps = check-manifest
commands = check-manifest

[testenv:pypi-description]
basepython = python3.7
skip_install = true
deps = twine
commands =
  pip wheel -w {envtmpdir}/build --no-deps .
  twine check {envtmpdir}/build/*
