mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2025-02-07 02:28:50 +00:00
update README.rst, minor fixes
This commit is contained in:
parent
fc9fa87827
commit
a78c6f1cb0
@ -17,7 +17,7 @@ install:
|
|||||||
- "pip install --user -r requirements.txt"
|
- "pip install --user -r requirements.txt"
|
||||||
- "python -c \"from OpenSSL import SSL; print(SSL.SSLeay_version(SSL.SSLEAY_VERSION))\""
|
- "python -c \"from OpenSSL import SSL; print(SSL.SSLeay_version(SSL.SSLEAY_VERSION))\""
|
||||||
test_script:
|
test_script:
|
||||||
- "py.test -s --cov libmproxy --cov netlib --cov libpathod --timeout 30 ./test/"
|
- "py.test -s --cov-config .coveragerc --timeout 30 ./test/"
|
||||||
cache:
|
cache:
|
||||||
- C:\Users\appveyor\AppData\Local\pip\cache
|
- C:\Users\appveyor\AppData\Local\pip\cache
|
||||||
deploy_script:
|
deploy_script:
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
[run]
|
[run]
|
||||||
branch = True
|
branch = True
|
||||||
|
include = libmproxy netlib libpathod
|
||||||
|
omit = *contrib*, *tnetstring*, *platform*, *console*, *main.py
|
||||||
|
|
||||||
[report]
|
[report]
|
||||||
show_missing = True
|
show_missing = True
|
||||||
include = *libmproxy* *netlib* *libpathod*
|
|
||||||
exclude_lines =
|
exclude_lines =
|
||||||
pragma: nocover
|
pragma: nocover
|
||||||
pragma: no cover
|
pragma: no cover
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
omit = *contrib*, *tnetstring*, *platform*, *console*, *main.py
|
|
||||||
|
@ -22,7 +22,7 @@ matrix:
|
|||||||
- python: 3.5
|
- python: 3.5
|
||||||
env: SCOPE="netlib"
|
env: SCOPE="netlib"
|
||||||
- python: 3.5
|
- python: 3.5
|
||||||
env: NO_ALPN=1 SCOPE="netlib"
|
env: SCOPE="netlib" NO_ALPN=1
|
||||||
- python: 2.7
|
- python: 2.7
|
||||||
env: DOCS=1
|
env: DOCS=1
|
||||||
script: 'cd mitmproxy/docs && make html'
|
script: 'cd mitmproxy/docs && make html'
|
||||||
@ -44,7 +44,7 @@ before_script:
|
|||||||
- "openssl version -a"
|
- "openssl version -a"
|
||||||
|
|
||||||
script:
|
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:
|
after_success:
|
||||||
- coveralls
|
- coveralls
|
||||||
|
146
README.rst
Normal file
146
README.rst
Normal file
@ -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
|
@ -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
|
``mitmproxy`` is an interactive, SSL-capable man-in-the-middle proxy for HTTP
|
||||||
with a console interface.
|
with a console interface.
|
||||||
@ -7,22 +7,6 @@ with a console interface.
|
|||||||
|
|
||||||
``libmproxy`` is the library that mitmproxy and mitmdump are built on.
|
``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
|
Features
|
||||||
--------
|
--------
|
||||||
|
|
||||||
@ -39,90 +23,30 @@ Features
|
|||||||
``mitmproxy`` is tested and developed on OSX, Linux and OpenBSD.
|
``mitmproxy`` is tested and developed on OSX, Linux and OpenBSD.
|
||||||
On Windows, only mitmdump is supported, which does not have a graphical user interface.
|
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.
|
||||||
|
|
||||||
|
|mitmproxy_site|
|
||||||
|
|
||||||
|
Installation Instructions are available in the docs.
|
||||||
|
|
||||||
|
|mitmproxy_docs|
|
||||||
|
|
||||||
|
You can join our developer chat on Slack.
|
||||||
|
|
||||||
|
|slack|
|
||||||
|
|
||||||
|
|
||||||
Hacking
|
.. |mitmproxy_site| image:: https://img.shields.io/badge/https%3A%2F%2F-mitmproxy.org-blue.svg
|
||||||
-------
|
|
||||||
|
|
||||||
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
|
|
||||||
----
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
.. |site| image:: https://img.shields.io/badge/https%3A%2F%2F-mitmproxy.org-blue.svg
|
|
||||||
:target: https://mitmproxy.org/
|
:target: https://mitmproxy.org/
|
||||||
:alt: 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/
|
:target: http://docs.mitmproxy.org/en/latest/
|
||||||
:alt: Documentation
|
:alt: mitmproxy documentation
|
||||||
|
|
||||||
.. |slack| image:: http://slack.mitmproxy.org/badge.svg
|
.. |slack| image:: http://slack.mitmproxy.org/badge.svg
|
||||||
:target: http://slack.mitmproxy.org/
|
:target: http://slack.mitmproxy.org/
|
||||||
@ -140,18 +64,10 @@ the documentation when a change is detected.
|
|||||||
:target: https://pypi.python.org/pypi/mitmproxy
|
:target: https://pypi.python.org/pypi/mitmproxy
|
||||||
:alt: Downloads
|
: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
|
:target: https://pypi.python.org/pypi/mitmproxy
|
||||||
:alt: Latest Version
|
: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
|
:target: https://pypi.python.org/pypi/mitmproxy
|
||||||
:alt: Supported Python versions
|
: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
|
|
||||||
|
@ -2,6 +2,7 @@ import json
|
|||||||
import cStringIO
|
import cStringIO
|
||||||
import re
|
import re
|
||||||
import OpenSSL
|
import OpenSSL
|
||||||
|
import pytest
|
||||||
from mock import Mock
|
from mock import Mock
|
||||||
|
|
||||||
from netlib import tcp, http, socks
|
from netlib import tcp, http, socks
|
||||||
@ -208,6 +209,7 @@ class TestDaemon(_TestDaemon):
|
|||||||
c.request("ws:/")
|
c.request("ws:/")
|
||||||
c.stop()
|
c.stop()
|
||||||
|
|
||||||
|
@pytest.mark.xfail
|
||||||
def test_wait_finish(self):
|
def test_wait_finish(self):
|
||||||
c = pathoc.Pathoc(
|
c = pathoc.Pathoc(
|
||||||
("127.0.0.1", self.d.port),
|
("127.0.0.1", self.d.port),
|
||||||
|
Loading…
Reference in New Issue
Block a user