aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.appveyor.yml2
-rw-r--r--.coveragerc4
-rw-r--r--.travis.yml4
-rw-r--r--README.rst146
-rw-r--r--mitmproxy/README.rst114
-rw-r--r--test/pathod/test_pathoc.py2
6 files changed, 168 insertions, 104 deletions
diff --git a/.appveyor.yml b/.appveyor.yml
index 2bbf3f12..1fc50c51 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -17,7 +17,7 @@ install:
- "pip install --user -r requirements.txt"
- "python -c \"from OpenSSL import SSL; print(SSL.SSLeay_version(SSL.SSLEAY_VERSION))\""
test_script:
- - "py.test -s --cov libmproxy --cov netlib --cov libpathod --timeout 30 ./test/"
+ - "py.test -s --cov-config .coveragerc --timeout 30 ./test/"
cache:
- C:\Users\appveyor\AppData\Local\pip\cache
deploy_script:
diff --git a/.coveragerc b/.coveragerc
index f6616fb3..627a4110 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -1,11 +1,11 @@
[run]
branch = True
+include = libmproxy netlib libpathod
+omit = *contrib*, *tnetstring*, *platform*, *console*, *main.py
[report]
show_missing = True
-include = *libmproxy* *netlib* *libpathod*
exclude_lines =
pragma: nocover
pragma: no cover
raise NotImplementedError()
-omit = *contrib*, *tnetstring*, *platform*, *console*, *main.py
diff --git a/.travis.yml b/.travis.yml
index f9a6aa66..fd1e3791 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -22,7 +22,7 @@ matrix:
- python: 3.5
env: SCOPE="netlib"
- python: 3.5
- env: NO_ALPN=1 SCOPE="netlib"
+ env: SCOPE="netlib" NO_ALPN=1
- python: 2.7
env: DOCS=1
script: 'cd mitmproxy/docs && make html'
@@ -44,7 +44,7 @@ before_script:
- "openssl version -a"
script:
- - "py.test -s --cov libmproxy --cov netlib --cov libpathod --timeout 30 ./test/$SCOPE"
+ - "py.test -s --cov-config .coveragerc --timeout 30 ./test/$SCOPE"
after_success:
- coveralls
diff --git a/README.rst b/README.rst
new file mode 100644
index 00000000..2b4a0a8c
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,146 @@
+|travis| |coveralls| |downloads| |latest_release| |python_versions|
+
+This repository contains the **mitmproxy** and **pathod** projects, as well as their shared networking library, **netlib**.
+
+``mitmproxy`` is an interactive, SSL-capable intercepting proxy with a console interface.
+
+``mitmdump`` is the command-line version of mitmproxy. Think tcpdump for HTTP.
+
+``pathoc`` and ``pathod`` are perverse HTTP client and server applications designed to let you craft almost any conceivable HTTP request, including ones that creatively violate the standards.
+
+
+Documentation & Help
+--------------------
+
+Documentation, tutorials and precompiled binaries can be found on the mitmproxy and pathod websites.
+
+|mitmproxy_site| |pathod_site|
+
+The latest documentation for mitmproxy is also available on ReadTheDocs.
+
+|mitmproxy_docs|
+
+You can join our developer chat on Slack.
+
+|slack|
+
+
+Hacking
+-------
+
+To get started hacking on mitmproxy, make sure you have Python_ 2.7.x. with
+virtualenv_ installed (you can find installation instructions for virtualenv here_).
+Then do the following:
+
+.. code-block:: text
+
+ git clone https://github.com/mitmproxy/mitmproxy.git
+ cd mitmproxy
+ ./dev
+
+
+The *dev* script will create a virtualenv environment in a directory called "venv",
+and install all mandatory and optional dependencies into it.
+The primary mitmproxy components - mitmproxy, netlib and pathod - are installed as "editable",
+so any changes to the source in the repository will be reflected live in the virtualenv.
+
+To confirm that you're up and running, activate the virtualenv, and run the
+mitmproxy test suite:
+
+.. code-block:: text
+
+ . venv/bin/activate # venv\Scripts\activate.bat on Windows
+ py.test --cov-config .coveragerc test
+
+Note that the main executables for the project - ``mitmdump``, ``mitmproxy``,
+``mitmweb``, ``pathod``, and ``pathoc`` - are all created within the virtualenv. After activating the
+virtualenv, they will be on your $PATH, and you can run them like any other
+command:
+
+.. code-block:: text
+
+ mitmdump --version
+
+For convenience, the project includes an autoenv_ file (`.env`_) that
+auto-activates the virtualenv when you cd into the mitmproxy directory.
+
+
+Testing
+-------
+
+If you've followed the procedure above, you already have all the development
+requirements installed, and you can simply run the test suite:
+
+.. code-block:: text
+
+ py.test --cov-config .coveragerc test
+
+Please ensure that all patches are accompanied by matching changes in the test
+suite. The project tries to maintain 100% test coverage.
+
+
+Docs
+----
+
+The mitmproxy documentation is build using Sphinx_, which is installed automatically if you set up a development
+environment as described above.
+After installation, you can render the documentation like this:
+
+.. code-block:: text
+
+ cd docs
+ make clean
+ make html
+ make livehtml
+
+The last command invokes `sphinx-autobuild`_, which watches the Sphinx directory and rebuilds
+the documentation when a change is detected.
+
+
+.. |mitmproxy_site| image:: https://img.shields.io/badge/https%3A%2F%2F-mitmproxy.org-blue.svg
+ :target: https://mitmproxy.org/
+ :alt: mitmproxy.org
+
+.. |pathod_site| image:: https://img.shields.io/badge/https%3A%2F%2F-pathod.net-blue.svg
+ :target: https://pathod.net/
+ :alt: pathod.net
+
+.. |mitmproxy_docs| image:: https://readthedocs.org/projects/mitmproxy/badge/
+ :target: http://docs.mitmproxy.org/en/latest/
+ :alt: mitmproxy documentation
+
+.. |pathod_docs| image:: https://readthedocs.org/projects/mitmproxy/badge/
+ :target: http://pathod.net/docs/pathod
+ :alt: pathod documentation
+
+.. |slack| image:: http://slack.mitmproxy.org/badge.svg
+ :target: http://slack.mitmproxy.org/
+ :alt: Slack Developer Chat
+
+.. |travis| image:: https://img.shields.io/travis/mitmproxy/mitmproxy/master.svg
+ :target: https://travis-ci.org/mitmproxy/mitmproxy
+ :alt: Build Status
+
+.. |coveralls| image:: https://img.shields.io/coveralls/mitmproxy/mitmproxy/master.svg
+ :target: https://coveralls.io/r/mitmproxy/mitmproxy
+ :alt: Coverage Status
+
+.. |downloads| image:: https://img.shields.io/pypi/dm/mitmproxy.svg?color=orange
+ :target: https://pypi.python.org/pypi/mitmproxy
+ :alt: Downloads
+
+.. |latest_release| image:: https://img.shields.io/pypi/v/mitmproxy.svg
+ :target: https://pypi.python.org/pypi/mitmproxy
+ :alt: Latest Version
+
+.. |python_versions| image:: https://img.shields.io/pypi/pyversions/mitmproxy.svg
+ :target: https://pypi.python.org/pypi/mitmproxy
+ :alt: Supported Python versions
+
+.. _Python: https://www.python.org/
+.. _virtualenv: http://virtualenv.readthedocs.org/en/latest/
+.. _here: http://virtualenv.readthedocs.org/en/latest/installation.html
+.. _autoenv: https://github.com/kennethreitz/autoenv
+.. _.env: https://github.com/mitmproxy/mitmproxy/blob/master/.env
+.. _Sphinx: http://sphinx-doc.org/
+.. _sphinx-autobuild: https://pypi.python.org/pypi/sphinx-autobuild
diff --git a/mitmproxy/README.rst b/mitmproxy/README.rst
index e8b3c84a..e73b5e34 100644
--- a/mitmproxy/README.rst
+++ b/mitmproxy/README.rst
@@ -1,4 +1,4 @@
-|travis| |coveralls| |downloads| |latest-release| |python-versions|
+|travis| |coveralls| |downloads| |latest_release| |python_versions|
``mitmproxy`` is an interactive, SSL-capable man-in-the-middle proxy for HTTP
with a console interface.
@@ -7,22 +7,6 @@ with a console interface.
``libmproxy`` is the library that mitmproxy and mitmdump are built on.
-Documentation & Help
---------------------
-
-Documentation, tutorials and distribution packages can be found on the
-mitmproxy website.
-
-|site|
-
-Installation Instructions are available in the docs.
-
-|docs|
-
-You can join our developer chat on Slack.
-
-|slack|
-
Features
--------
@@ -39,90 +23,30 @@ Features
``mitmproxy`` is tested and developed on OSX, Linux and OpenBSD.
On Windows, only mitmdump is supported, which does not have a graphical user interface.
+Documentation & Help
+--------------------
+Documentation, tutorials and distribution packages can be found on the
+mitmproxy website.
-Hacking
--------
-
-To get started hacking on mitmproxy, make sure you have Python_ 2.7.x. with
-virtualenv_ installed (you can find installation instructions for virtualenv here_).
-Then do the following:
-
-.. code-block:: text
-
- git clone https://github.com/mitmproxy/mitmproxy.git
- git clone https://github.com/mitmproxy/netlib.git
- git clone https://github.com/mitmproxy/pathod.git
- cd mitmproxy
- ./dev
-
-
-The *dev* script will create a virtualenv environment in a directory called
-"venv.mitmproxy", and install all of mitmproxy's development requirements, plus
-all optional modules. The primary mitmproxy components - mitmproxy, netlib and
-pathod - are all installed "editable", so any changes to the source in the git
-checkouts will be reflected live in the virtualenv.
-
-To confirm that you're up and running, activate the virtualenv, and run the
-mitmproxy test suite:
-
-.. code-block:: text
-
- . ../venv.mitmproxy/bin/activate # ..\venv.mitmproxy\Scripts\activate.bat on Windows
- py.test -n 4 --cov libmproxy
-
-Note that the main executables for the project - ``mitmdump``, ``mitmproxy`` and
-``mitmweb`` - are all created within the virtualenv. After activating the
-virtualenv, they will be on your $PATH, and you can run them like any other
-command:
-
-.. code-block:: text
-
- mitmdump --version
-
-For convenience, the project includes an autoenv_ file (`.env`_) that
-auto-activates the virtualenv when you cd into the mitmproxy directory.
-
-
-Testing
--------
-
-If you've followed the procedure above, you already have all the development
-requirements installed, and you can simply run the test suite:
-
-.. code-block:: text
-
- py.test -n 4 --cov libmproxy
-
-Please ensure that all patches are accompanied by matching changes in the test
-suite. The project maintains 100% test coverage.
-
-
-Docs
-----
+|mitmproxy_site|
-The mitmproxy documentation is build using Sphinx_, which is installed automatically if you set up a development
-environment as described above.
-After installation, you can render the documentation like this:
+Installation Instructions are available in the docs.
-.. code-block:: text
+|mitmproxy_docs|
- cd docs
- make clean
- make html
- make livehtml
+You can join our developer chat on Slack.
-The last command invokes `sphinx-autobuild`_, which watches the Sphinx directory and rebuilds
-the documentation when a change is detected.
+|slack|
-.. |site| image:: https://img.shields.io/badge/https%3A%2F%2F-mitmproxy.org-blue.svg
+.. |mitmproxy_site| image:: https://img.shields.io/badge/https%3A%2F%2F-mitmproxy.org-blue.svg
:target: https://mitmproxy.org/
:alt: mitmproxy.org
-.. |docs| image:: https://readthedocs.org/projects/mitmproxy/badge/
+.. |mitmproxy_docs| image:: https://readthedocs.org/projects/mitmproxy/badge/
:target: http://docs.mitmproxy.org/en/latest/
- :alt: Documentation
+ :alt: mitmproxy documentation
.. |slack| image:: http://slack.mitmproxy.org/badge.svg
:target: http://slack.mitmproxy.org/
@@ -140,18 +64,10 @@ the documentation when a change is detected.
:target: https://pypi.python.org/pypi/mitmproxy
:alt: Downloads
-.. |latest-release| image:: https://img.shields.io/pypi/v/mitmproxy.svg
+.. |latest_release| image:: https://img.shields.io/pypi/v/mitmproxy.svg
:target: https://pypi.python.org/pypi/mitmproxy
:alt: Latest Version
-.. |python-versions| image:: https://img.shields.io/pypi/pyversions/mitmproxy.svg
+.. |python_versions| image:: https://img.shields.io/pypi/pyversions/mitmproxy.svg
:target: https://pypi.python.org/pypi/mitmproxy
:alt: Supported Python versions
-
-.. _Python: https://www.python.org/
-.. _virtualenv: http://virtualenv.readthedocs.org/en/latest/
-.. _here: http://virtualenv.readthedocs.org/en/latest/installation.html
-.. _autoenv: https://github.com/kennethreitz/autoenv
-.. _.env: https://github.com/mitmproxy/mitmproxy/blob/master/.env
-.. _Sphinx: http://sphinx-doc.org/
-.. _sphinx-autobuild: https://pypi.python.org/pypi/sphinx-autobuild
diff --git a/test/pathod/test_pathoc.py b/test/pathod/test_pathoc.py
index e1d32f79..7c912773 100644
--- a/test/pathod/test_pathoc.py
+++ b/test/pathod/test_pathoc.py
@@ -2,6 +2,7 @@ import json
import cStringIO
import re
import OpenSSL
+import pytest
from mock import Mock
from netlib import tcp, http, socks
@@ -208,6 +209,7 @@ class TestDaemon(_TestDaemon):
c.request("ws:/")
c.stop()
+ @pytest.mark.xfail
def test_wait_finish(self):
c = pathoc.Pathoc(
("127.0.0.1", self.d.port),