Commit Graph

126 Commits

Author SHA1 Message Date
Aldo Cortesi
5192810ff6 Make mypy succeed with imports on master.py
We get little benefit from our mypy QA checks at the moment, because we skip
imports. This patch is what's needed to make mypy succeed with imports on a
single file: master.py

It also updates mypy to the current version, and enables a QA check.

Mypy bugs I encountered:

dict.update with kwargs not supported:

https://github.com/python/mypy/issues/1031

property setters and getters must be adjacent:

https://github.com/python/mypy/issues/1465
2017-03-17 08:13:47 +13:00
Aldo Cortesi
f15a628561 Start unifying options and the command-line: booleans
This commit:

- Adds a help field to options
- Adds a function to generate parser definitions from options
- Uses this to migrate all boolean flags over to the new system
- Makes all booleans consistently follow the --foo/--not-foo convention

There are a number of things left to be done here:

- Argparse doesn't give us a nice way to format --foo --not-foo help. Click
does, and moving to click is a goal down the track.
- For now, we remove all short aliases. I want to re-evaluate these
systematically once we have the new structure in place.
2017-03-05 20:16:33 +13:00
Thomas Kriechbaumer
6b22ca7a32 add individual-coverage check 2017-02-16 11:43:45 +01:00
Thomas Kriechbaumer
24a51df9cb extract full-coverage pytest plugin 2017-02-15 00:29:43 +01:00
Thomas Kriechbaumer
04748e6f3f add filename-matching linter 2017-02-14 22:48:24 +01:00
Thomas Kriechbaumer
cd9cd8a195 update lint options 2017-02-14 22:44:55 +01:00
Thomas Kriechbaumer
c8c79cc291 coverage++ 2017-02-10 22:55:15 +01:00
Thomas Kriechbaumer
0299bb5b2e eventsequence: coverage++ 2017-02-09 16:08:36 +01:00
Thomas Kriechbaumer
5a3976c43e coverage whitelist -> blacklist 2017-02-09 16:08:36 +01:00
Thomas Kriechbaumer
1847cf175c websockets, tcp, version: coverage++ 2017-02-09 16:08:35 +01:00
Thomas Kriechbaumer
966ffaa3d6 coverage++ 2017-02-04 13:48:55 +01:00
Thomas Kriechbaumer
bcaaa2f40b coverage++ 2017-02-03 11:55:33 +01:00
Thomas Kriechbaumer
4f0b2bc4de adapt coverage checks 2017-02-02 14:20:56 +01:00
Thomas Kriechbaumer
6e329595ca add test coverage protection 2017-02-02 11:39:33 +01:00
Thomas Kriechbaumer
72b753c60f provide git information with --version
fixes #1848
2017-01-19 20:27:29 +01:00
Thomas Kriechbaumer
0bde932b78 run tests on Python 3.6 2016-12-27 16:28:12 +01:00
Maximilian Hils
38198769eb pyinstaller: use fixed bootloaders on linux 2016-12-27 03:09:43 +01:00
Maximilian Hils
980a84326b InstallBuilder (#1826) 2016-12-11 23:07:47 +01:00
Maximilian Hils
a7ba2f7b46 update tests, increase coverage, add type info 2016-12-09 21:26:02 +01:00
Thomas Kriechbaumer
1a36efbb6a simplify ALPN and OpenSSL on macOS 2016-12-04 11:04:06 +01:00
Maximilian Hils
3154dc87fd fix pyinstaller
amongst other things, fix #1746
2016-11-28 00:51:52 +01:00
Maximilian Hils
a6c608e085 make the new mypy release happy 2016-11-23 01:27:23 +01:00
Maximilian Hils
677789a617 minor fixes 2016-11-16 15:09:53 +01:00
Aldo Cortesi
d4f4beb6c7 tests: add mitmdump --sysinfo to tests runs for platform info 2016-11-03 07:57:25 +13:00
Aldo Cortesi
c33557a230 Extend mypy checks to mitmproxy/addons
Fix a number of issues to do this.
2016-11-01 10:38:35 +13:00
Thomas Kriechbaumer
f1878eb051 http2: add more type information 2016-10-27 20:24:57 -07:00
Aldo Cortesi
d6bdb28865 Add mypy to lint
An extremely modest beginning, but we'll roll this out over the whole codebase
in time.

Also move flake8 and mypy dependencies into setup[dev].
2016-10-27 09:40:27 +13:00
Maximilian Hils
909ecd040a add README.rst validation to CI 2016-10-22 17:20:57 -07:00
Aldo Cortesi
8430f857b5 The final piece: netlib -> mitproxy.net 2016-10-20 11:56:38 +13:00
Aldo Cortesi
8360f70024 First-order conversion to Python3-only
- Zap various occurrences of Python2 in docs and scripts
- Remove six from netlib, and some other places where obvious project-wide
search and replace works.
2016-10-17 15:18:47 +13:00
Maximilian Hils
4f5e312fbc allow tox workdir reconfiguration for ubuntu on windows 2016-08-09 22:29:48 -07:00
Maximilian Hils
d97fe767dc update dependencies (#1435) 2016-07-25 21:52:34 -07:00
Thomas Kriechbaumer
aa1615eafd cleanup tox 2016-07-09 11:20:10 +02:00
Shadab Zafar
bd58230178 Remove py35 section from tox.ini 2016-07-09 12:51:43 +05:30
Shadab Zafar
b4469d2579 py3++: test_dump 2016-07-09 11:14:12 +05:30
Maximilian Hils
f7639e077a py3++ 2016-07-08 15:58:12 -07:00
Thomas Kriechbaumer
df43a962d7 simplify tox test exclusion 2016-07-08 10:54:21 +02:00
Maximilian Hils
f62e976e1e py3++ 2016-07-07 17:29:22 -07:00
Shadab Zafar
c870d26bc7 py3++: test_protocol_http2 2016-07-07 16:39:25 +02:00
Maximilian Hils
f259b9478f disable harparser on py3 2016-07-07 01:21:15 -07:00
Maximilian Hils
684b4b5130 tnetstring: keys are str on py3. migrate flow.io_compat 2016-07-06 19:55:48 -07:00
Maximilian Hils
9c873d63f4 py3++, multidict fixes
This commit improves Python 3 compatibility and fixes two multidict
issues:

 1. Headers.items(multi=True) now decodes fields
 2. MultiDict.clear(item) has been removed, as Python's
    MutableMapping already defines .clear() with different
    semantics. This is confusing for everyone who expects a
    dict-like object. `.pop("attr", None)` is not fantastic,
    but it's the Python way to do it.
2016-07-06 19:53:29 -07:00
Maximilian Hils
882b8b5d80 don't cache tox on CI 2016-07-05 15:58:52 -07:00
Maximilian Hils
09d6782722 Merge pull request #1316 from mhils/faster-lint
tox: dont make sdist when linting
2016-07-05 15:40:10 -07:00
Maximilian Hils
45a634783a tox: dont make sdist when linting 2016-07-05 15:03:40 -07:00
Shadab Zafar
f623b3d99b py3++: test_flow_export 2016-07-02 21:15:20 +05:30
Maximilian Hils
536c7acd13 py3++ 2016-07-01 14:10:48 -07:00
Shadab Zafar
268e42e55e py3++: test/mitmproxy/test_server 2016-07-01 10:23:04 -07:00
Maximilian Hils
6181bf978d remove superfluous statements in tox.ini 2016-06-29 00:05:03 -07:00
Maximilian Hils
f7d4319c5a minor fixes 2016-06-28 23:48:19 -07:00
Maximilian Hils
7cae0c268f do not run tests in parallel
this makes ci very unreliable, see
https://travis-ci.org/mitmproxy/mitmproxy/jobs/140994186
I don't know of a way to fix the test collection bug.
2016-06-28 23:18:55 -07:00
Maximilian Hils
4f7d108722 compile docs on python 3.5 2016-06-28 22:06:08 -07:00
Maximilian Hils
f69972d13d simplify tox setup 2016-06-28 19:44:25 -07:00
Thomas Kriechbaumer
3079ea7e29 update tox env on CI 2016-06-28 10:20:51 +02:00
Thomas Kriechbaumer
566736c799 update appveyor with tox 2016-06-27 23:14:32 +02:00
Shadab Zafar
d655d8f1f3 py3++: mitmproxy.platform.pf 2016-06-22 13:38:00 +05:30
Shadab Zafar
c0ba47094d py3++: mitmproxy.protocol.http1 2016-06-22 13:37:41 +05:30
Shadab Zafar
119021a9c3 py3++: mitmproxy.proxy 2016-06-22 13:37:16 +05:30
Shadab Zafar
0adbf21a7f py3++ 2016-06-21 23:55:31 +05:30
Shadab Zafar
5b95803be0 py3++ 2016-06-20 21:57:18 +02:00
Shadab Zafar
efeade134a py3++ 2016-06-20 21:39:39 +02:00
Shadab Zafar
500bf18023 Enable Travis for the entire pathod directory :) 2016-06-16 17:08:06 -07:00
Shadab Zafar
7de5d7b298 Enable Travis for test/pathod/test_pathoc 2016-06-15 09:49:39 +02:00
Aldo Cortesi
250b47487a tox: Pull Py3 test list out into an environment variable
Suggestion from @resam
2016-06-11 09:34:40 +12:00
Aldo Cortesi
6da3ef48e0 Remove explicit versions in tox CI environments
Tox matches the environment prefix against its std environs, so we don't need
to be explicit with versions here.
2016-06-10 19:38:55 +12:00
Aldo Cortesi
bac3e87538 Distinguish between CI and interactive versions of tox
- This patch changes tox so that local invocation runs the tests
with paralellism, coverage disabled, and without attempting to report coverage
upstream.

- You can now run specific tests for the py27 environment:

    tox -e py27 ./path/to/my/test

We can't do this for py35 just yet, because of our junk filter, and the fact
that we specify which tests to run directly in the conf file. Once these are
cleaned up, we can extend.
2016-06-10 16:03:54 +12:00
Thomas Kriechbaumer
68f07911e0 properly fail on test failures 2016-06-08 19:46:13 +02:00
Shadab Zafar
2ff5c789df Enable Travis for test_language_http2 2016-06-08 16:17:00 +05:30
Thomas Kriechbaumer
14ac916bce use tox in Travis 2016-06-07 19:59:49 +02:00
Shadab Zafar
d2281e0ab3 Enable Travis for test/pathod/test_language_websocket 2016-06-07 11:40:17 +05:30
Shadab Zafar
f6523a128c Enable Travis for test/pathod/test_language_http 2016-06-06 11:52:45 -07:00
Shadab Zafar
f45765a236 Add test_language_base to tox.ini 2016-06-04 19:07:28 +05:30
Thomas Kriechbaumer
36c7fef134 add missing pathod files to travis 2016-06-04 12:27:46 +02:00
Aldo Cortesi
d98582664d Make tox run all tests for 2.7 2016-05-31 10:25:24 +12:00
Thomas Kriechbaumer
4f0657bc22 activate flake8 for good! 2016-05-30 09:44:40 +02:00
Thomas Kriechbaumer
669976d579 add tox 2016-05-29 22:39:06 +02:00