aboutsummaryrefslogtreecommitdiffstats
path: root/tox.ini
blob: 1c5e1b96348fa1773f86bceedc2889a70e968fbd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
[tox]
envlist = py35, py36, docs, lint
skipsdist = True
toxworkdir={env:TOX_WORK_DIR:.tox}

[testenv]
deps =
  {env:CI_DEPS:}
  -rrequirements.txt
passenv = CODECOV_TOKEN CI CI_* TRAVIS TRAVIS_* APPVEYOR APPVEYOR_* SNAPSHOT_* OPENSSL_* RTOOL_*
setenv = HOME = {envtmpdir}
commands =
  mitmdump --version
  pytest --timeout 60 --cov-report='' --cov=mitmproxy --cov=pathod \
    --full-cov=mitmproxy/ \
    --no-full-cov=mitmproxy/contentviews/__init__.py --no-full-cov=mitmproxy/contentviews/protobuf.py --no-full-cov=mitmproxy/contentviews/wbxml.py --no-full-cov=mitmproxy/contentviews/xml_html.py \
    --no-full-cov=mitmproxy/net/tcp.py --no-full-cov=mitmproxy/net/http/cookies.py --no-full-cov=mitmproxy/net/http/encoding.py --no-full-cov=mitmproxy/net/http/message.py --no-full-cov=mitmproxy/net/http/url.py \
    --no-full-cov=mitmproxy/proxy/protocol/ --no-full-cov=mitmproxy/proxy/config.py --no-full-cov=mitmproxy/proxy/root_context.py --no-full-cov=mitmproxy/proxy/server.py \
    --no-full-cov=mitmproxy/tools/ \
    --no-full-cov=mitmproxy/certs.py --no-full-cov=mitmproxy/connections.py --no-full-cov=mitmproxy/controller.py --no-full-cov=mitmproxy/export.py --no-full-cov=mitmproxy/flow.py --no-full-cov=mitmproxy/flowfilter.py --no-full-cov=mitmproxy/http.py --no-full-cov=mitmproxy/io_compat.py --no-full-cov=mitmproxy/master.py --no-full-cov=mitmproxy/optmanager.py \
    --full-cov=pathod/ --no-full-cov=pathod/pathoc.py --no-full-cov=pathod/pathod.py --no-full-cov=pathod/test.py --no-full-cov=pathod/protocols/http2.py \
    {posargs}
  {env:CI_COMMANDS:python -c ""}

[testenv:docs]
changedir = docs
commands = sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html

[testenv:lint]
commands =
  mitmdump --version
  flake8 --jobs 8 mitmproxy pathod examples test release
  python3 test/filename_matching.py
  rstcheck README.rst
  mypy --ignore-missing-imports --follow-imports=skip \
    mitmproxy/addons/ \
    mitmproxy/addonmanager.py \
    mitmproxy/proxy/protocol/ \
    mitmproxy/log.py \
    mitmproxy/tools/dump.py \
    mitmproxy/tools/web/ \
    mitmproxy/contentviews/

[testenv:wheel]
recreate = True
deps =
commands =
  python setup.py -q bdist_wheel --dist-dir release/dist
  pip install {posargs} release/dist/mitmproxy-{env:VERSION:}-py3-none-any.whl
  # skip `mitmproxy --version` if SKIP_MITMPROXY is defined.
  {env:SKIP_MITMPROXY:mitmproxy --version}
  mitmdump --version
  mitmweb --version
  pathod --version
  pathoc --version

[testenv:rtool]
deps =
  -rrequirements.txt
  -e./release
  # The 3.2 release is broken 🎉
  # the next commit after this updates the bootloaders, which then segfault! 🎉
  # https://github.com/pyinstaller/pyinstaller/issues/2232
  git+https://github.com/pyinstaller/pyinstaller.git@483c819d6a256b58db6740696a901bd41c313f0c; sys_platform == 'win32'
  git+https://github.com/mhils/pyinstaller.git@d094401e4196b1a6a03818b80164a5f555861cef; sys_platform != 'win32'

commands =
  rtool {posargs}