[tox] envlist = py27, py35, docs, lint [testenv] deps = -rrequirements.txt codecov>=2.0.5 passenv = USERNAME HOME HOMEPATH LOCALAPPDATA CODECOV_TOKEN CI TRAVIS TRAVIS_* APPVEYOR APPVEYOR_* setenv = PY3TESTS = test/netlib test/pathod/ test/mitmproxy/script test/mitmproxy/test_contentview.py test/mitmproxy/test_custom_contentview.py test/mitmproxy/test_app.py test/mitmproxy/test_controller.py test/mitmproxy/test_fuzzing.py test/mitmproxy/test_script.py test/mitmproxy/test_web_app.py test/mitmproxy/test_utils.py test/mitmproxy/test_stateobject.py test/mitmproxy/test_cmdline.py test/mitmproxy/test_contrib_tnetstring.py test/mitmproxy/test_proxy.py test/mitmproxy/test_protocol_http1.py test/mitmproxy/test_platform_pf.py [testenv:py27] commands = py.test -n 8 --timeout 60 [] [testenv:py35] # remove bash & pipe & grep hack after cryptography ships with openssl 1.1.0 whitelist_externals = bash commands = bash -c 'set -o pipefail ; py.test -n 8 --timeout 60 {env:PY3TESTS:} 2>&1 | grep -v Cryptography_locking_cb' [testenv:py27-ci] commands = py.test --cov netlib --cov mitmproxy --cov pathod --timeout 60 codecov -e TOXENV [testenv:py35-ci] # remove bash & pipe & grep hack after cryptography ships with openssl 1.1.0 whitelist_externals = bash commands = bash -c 'set -o pipefail ; py.test --cov netlib --cov mitmproxy --cov pathod --timeout 60 {env:PY3TESTS:} 2>&1 | grep -v Cryptography_locking_cb' codecov -e TOXENV [testenv:py35-ci-win] deps = https://snapshots.mitmproxy.org/misc/lxml-3.6.0-cp35-cp35m-win32.whl codecov>=2.0.5 .[dev] commands = py.test --cov netlib --cov mitmproxy --cov pathod --timeout 60 {env:PY3TESTS:} codecov -e TOXENV [testenv:docs] basepython = python2.7 whitelist_externals = make changedir = docs setenv = SPHINXOPTS="-W" commands = make -e html [testenv:lint] basepython = python2.7 deps = flake8>=2.6.2, <3 commands = flake8 --jobs 8 --count mitmproxy netlib pathod examples test