From 4ede2f126a1b753d7a56dea67e0e098441d4ff23 Mon Sep 17 00:00:00 2001 From: Kyle Manna Date: Tue, 13 Aug 2013 15:35:33 -0700 Subject: utils: Add missing "B" for pretty_size() * Add missing unit for megabytes, should print "MB". --- libmproxy/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libmproxy/utils.py b/libmproxy/utils.py index 258626db..961c6618 100644 --- a/libmproxy/utils.py +++ b/libmproxy/utils.py @@ -74,7 +74,7 @@ def pretty_size(size): suffixes = [ ("B", 2**10), ("kB", 2**20), - ("M", 2**30), + ("MB", 2**30), ] for suf, lim in suffixes: if size >= lim: -- cgit v1.2.3 From ea28496beab48a1fcca58184b73b24af491d4704 Mon Sep 17 00:00:00 2001 From: Kyle Manna Date: Tue, 13 Aug 2013 12:02:49 -0700 Subject: console: Add support for displaying elapsed time * Display the elapsed time in the the response row. * Very handy for passive performance analysis. --- libmproxy/console/common.py | 9 ++++++++- libmproxy/console/palettes.py | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py index 187a755f..90a23eaa 100644 --- a/libmproxy/console/common.py +++ b/libmproxy/console/common.py @@ -144,6 +144,9 @@ def raw_format_flow(f, focus, extended, padding): if f["resp_ctype"]: resp.append(fcol(f["resp_ctype"], rc)) resp.append(fcol(f["resp_clen"], rc)) + + resp.append(fcol(f["resp_et"], "time")) + elif f["err_msg"]: resp.append(fcol(SYMBOL_RETURN, "error")) resp.append( @@ -185,11 +188,15 @@ def format_flow(f, focus, extended=False, hostheader=False, padding=2): contentdesc = "[content missing]" else: contentdesc = "[no content]" + + delta = f.response.timestamp_end - f.request.timestamp_start + d.update(dict( resp_code = f.response.code, resp_is_replay = f.response.is_replay(), resp_acked = f.response.reply.acked, - resp_clen = contentdesc + resp_clen = contentdesc, + resp_et = "{0:2.0f}ms".format(delta * 1000), )) t = f.response.headers["content-type"] if t: diff --git a/libmproxy/console/palettes.py b/libmproxy/console/palettes.py index 650cf261..df84a1e4 100644 --- a/libmproxy/console/palettes.py +++ b/libmproxy/console/palettes.py @@ -35,6 +35,7 @@ palettes = { ('header', 'dark cyan', 'default'), ('highlight', 'white,bold', 'default'), + ('time', 'light red', 'default'), ('intercept', 'brown', 'default', None, '#f60', 'default'), ('replay', 'light green', 'default', None, '#0f0', 'default'), ('ack', 'light red', 'default'), -- cgit v1.2.3 From 41041159f6d9b260d0d1c95d42b1dd4f14b7f0cb Mon Sep 17 00:00:00 2001 From: Kyle Manna Date: Tue, 13 Aug 2013 16:29:57 -0700 Subject: console: Add support for displaying transfer rate * Display the rate in the the response row. * Very handy for passive performance analysis. --- libmproxy/console/common.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py index 90a23eaa..74830237 100644 --- a/libmproxy/console/common.py +++ b/libmproxy/console/common.py @@ -146,6 +146,7 @@ def raw_format_flow(f, focus, extended, padding): resp.append(fcol(f["resp_clen"], rc)) resp.append(fcol(f["resp_et"], "time")) + resp.append(fcol(f["resp_rate"], "highlight")) elif f["err_msg"]: resp.append(fcol(SYMBOL_RETURN, "error")) @@ -190,6 +191,7 @@ def format_flow(f, focus, extended=False, hostheader=False, padding=2): contentdesc = "[no content]" delta = f.response.timestamp_end - f.request.timestamp_start + rate = utils.pretty_size(len(f.response.content) / delta) d.update(dict( resp_code = f.response.code, @@ -197,6 +199,7 @@ def format_flow(f, focus, extended=False, hostheader=False, padding=2): resp_acked = f.response.reply.acked, resp_clen = contentdesc, resp_et = "{0:2.0f}ms".format(delta * 1000), + resp_rate = "{0}/s".format(rate), )) t = f.response.headers["content-type"] if t: -- cgit v1.2.3 From 4790399041215ce05fa5496782822b5c2ef4a2a7 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Tue, 20 Aug 2013 13:25:47 +0200 Subject: add travis ci --- .travis.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..153322a6 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,7 @@ +language: python +python: + - "2.7" +# command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors +install: "pip install -r requirements.txt --use-mirrors" +# command to run tests, e.g. python setup.py test +script: nosetests \ No newline at end of file -- cgit v1.2.3 From 4bbcf795e3a8148219125f1b72359cae47e74d69 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Tue, 20 Aug 2013 13:32:18 +0200 Subject: travis ci: make sure that netlib is installed from head --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 153322a6..d3519b7f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,9 @@ language: python python: - "2.7" # command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors -install: "pip install -r requirements.txt --use-mirrors" +install: + - "pip install --upgrade git+https://github.com/mitmproxy/netlib.git" + - "pip install --upgrade git+https://github.com/mitmproxy/pathod.git" + - "pip install -r requirements.txt --use-mirrors" # command to run tests, e.g. python setup.py test script: nosetests \ No newline at end of file -- cgit v1.2.3 From 02120eb5c85f02c2053c6a6449dccb720485e185 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Tue, 20 Aug 2013 13:42:25 +0200 Subject: travis ci: fix pip install order --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d3519b7f..5f4a3602 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,8 @@ python: - "2.7" # command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors install: + - "pip install -r requirements.txt --use-mirrors" - "pip install --upgrade git+https://github.com/mitmproxy/netlib.git" - "pip install --upgrade git+https://github.com/mitmproxy/pathod.git" - - "pip install -r requirements.txt --use-mirrors" # command to run tests, e.g. python setup.py test script: nosetests \ No newline at end of file -- cgit v1.2.3 From fa3dce9e11a3cb97c48d5fc8ef4325b7ed5280db Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Tue, 20 Aug 2013 13:47:34 +0200 Subject: add jsbeautifier to requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index ce1659aa..ad61de60 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,3 +12,4 @@ pyasn1==0.1.7 requests==1.2.2 urwid==1.1.1 wsgiref==0.1.2 +jsbeautifier==1.4.0 -- cgit v1.2.3 From a2643b52f909719d4e0fe97e17d3d30f43669341 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Fri, 23 Aug 2013 10:01:19 +1200 Subject: Tweak timing display - Remove elapsed time. Space is at a premium here, and this is somewhat redundant with the rate figure. We should display complete timing information somewhere in the detailed flow view. - Tone down the colour. Reserve highlights for stuff that should really pop out to the user. - Make rate calculation more acurate. Include header sizes. Use response start and end time, rather than request end and response end. This means that we show actual transfer rates, not including DNS requests and so forth. --- libmproxy/console/common.py | 10 ++++------ libmproxy/console/palettes.py | 1 - libmproxy/flow.py | 2 +- libmproxy/proxy.py | 7 +++++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py index 74830237..006303a7 100644 --- a/libmproxy/console/common.py +++ b/libmproxy/console/common.py @@ -144,9 +144,7 @@ def raw_format_flow(f, focus, extended, padding): if f["resp_ctype"]: resp.append(fcol(f["resp_ctype"], rc)) resp.append(fcol(f["resp_clen"], rc)) - - resp.append(fcol(f["resp_et"], "time")) - resp.append(fcol(f["resp_rate"], "highlight")) + resp.append(fcol(f["resp_rate"], rc)) elif f["err_msg"]: resp.append(fcol(SYMBOL_RETURN, "error")) @@ -190,15 +188,15 @@ def format_flow(f, focus, extended=False, hostheader=False, padding=2): else: contentdesc = "[no content]" - delta = f.response.timestamp_end - f.request.timestamp_start - rate = utils.pretty_size(len(f.response.content) / delta) + delta = f.response.timestamp_end - f.response.timestamp_start + size = len(f.response.content) + f.response.get_header_size() + rate = utils.pretty_size(size / delta) d.update(dict( resp_code = f.response.code, resp_is_replay = f.response.is_replay(), resp_acked = f.response.reply.acked, resp_clen = contentdesc, - resp_et = "{0:2.0f}ms".format(delta * 1000), resp_rate = "{0}/s".format(rate), )) t = f.response.headers["content-type"] diff --git a/libmproxy/console/palettes.py b/libmproxy/console/palettes.py index df84a1e4..650cf261 100644 --- a/libmproxy/console/palettes.py +++ b/libmproxy/console/palettes.py @@ -35,7 +35,6 @@ palettes = { ('header', 'dark cyan', 'default'), ('highlight', 'white,bold', 'default'), - ('time', 'light red', 'default'), ('intercept', 'brown', 'default', None, '#f60', 'default'), ('replay', 'light green', 'default', None, '#0f0', 'default'), ('ack', 'light red', 'default'), diff --git a/libmproxy/flow.py b/libmproxy/flow.py index 84836d11..24042812 100644 --- a/libmproxy/flow.py +++ b/libmproxy/flow.py @@ -618,7 +618,7 @@ class Response(HTTPMsg): self.headers, self.content = headers, content self.cert = cert self.timestamp_start = timestamp_start or utils.timestamp() - self.timestamp_end = max(timestamp_end or utils.timestamp(), timestamp_start) + self.timestamp_end = timestamp_end or utils.timestamp() self.replay = False def _refresh_cookie(self, c, delta): diff --git a/libmproxy/proxy.py b/libmproxy/proxy.py index b0c15463..75a54192 100644 --- a/libmproxy/proxy.py +++ b/libmproxy/proxy.py @@ -88,11 +88,13 @@ class RequestReplayThread(threading.Thread): server = ServerConnection(self.config, r.scheme, r.host, r.port, r.host) server.connect() server.send(r) + tsstart = utils.timestamp() httpversion, code, msg, headers, content = http.read_response( server.rfile, r.method, self.config.body_size_limit ) response = flow.Response( - self.flow.request, httpversion, code, msg, headers, content, server.cert + self.flow.request, httpversion, code, msg, headers, content, server.cert, + server.rfile.first_byte_timestamp ) self.channel.ask(response) except (ProxyError, http.HttpError, tcp.NetLibError), v: @@ -224,6 +226,7 @@ class ProxyHandler(tcp.BaseHandler): request.ssl_setup_timestamp = sc.ssl_setup_timestamp sc.rfile.reset_timestamps() try: + tsstart = utils.timestamp() httpversion, code, msg, headers, content = http.read_response( sc.rfile, request.method, @@ -242,7 +245,7 @@ class ProxyHandler(tcp.BaseHandler): response = flow.Response( request, httpversion, code, msg, headers, content, sc.cert, - sc.rfile.first_byte_timestamp, utils.timestamp() + sc.rfile.first_byte_timestamp ) response_reply = self.channel.ask(response) # Not replying to the server invalidates the server -- cgit v1.2.3 From aaba940dea8f148db953c50c3f8259154b8f3bcc Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Fri, 23 Aug 2013 10:28:16 +1200 Subject: Fix pretty_size unit tests. --- test/test_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_utils.py b/test/test_utils.py index db6feb4d..f40e0a31 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -38,7 +38,7 @@ def test_pretty_size(): assert utils.pretty_size(100) == "100B" assert utils.pretty_size(1024) == "1kB" assert utils.pretty_size(1024 + (1024/2.0)) == "1.5kB" - assert utils.pretty_size(1024*1024) == "1M" + assert utils.pretty_size(1024*1024) == "1MB" def test_pkg_data(): -- cgit v1.2.3 From 789700ade2204570b37c096011bf4ecc0174eb73 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 25 Aug 2013 10:28:15 +1200 Subject: Prep for release: CHANGELOG and CONTRIBUTORS --- CHANGELOG | 22 ++++++++++++++++++++++ CONTRIBUTORS | 41 ++++++++++++++++++++++------------------- release/osx-binaries | 11 +++++++++-- requirements.txt | 15 --------------- 4 files changed, 53 insertions(+), 36 deletions(-) delete mode 100644 requirements.txt diff --git a/CHANGELOG b/CHANGELOG index c1cd9436..441474f3 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,25 @@ +25 August 2013: mitmproxy 0.9.2: + + * Improvements to the mitmproxywrapper.py helper script for OSX. + + * Don't take minor version into account when checking for serialized file + compatibility. + + * Fix a bug causing resource exhaustion under some circumstances for SSL + connections. + + * Revamp the way we store interception certificates. We used to store these + on disk, they're now in-memory. This fixes a race condition related to + cert handling, and improves compatibility with Windows, where the rules + governing permitted file names are weird, resulting in errors for some + valid IDNA-encoded names. + + * Display transfer rates for responses in the flow list. + + * Many other small bugfixes and improvements. + + + 16 June 2013: mitmproxy 0.9.1: diff --git a/CONTRIBUTORS b/CONTRIBUTORS index e7ea1fb7..5ad5d135 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1,39 +1,42 @@ - 777 Aldo Cortesi + 801 Aldo Cortesi 18 Henrik Nordstrom 13 Thomas Roth + 13 Maximilian Hils 11 Stephen Altamirano 10 András Veres-Szentkirályi - 8 Rouli 8 Jason A. Novak + 8 Rouli 7 Alexis Hildebrandt - 6 Maximilian Hils + 4 Marc Liyanage 4 Valtteri Virtanen 4 Bryan Bishop 3 Chris Neasbitt - 2 Heikki Hannikainen + 3 Kyle Manna 2 Jim Lloyd - 2 Mark E. Haase + 2 Matthias Urlichs 2 Michael Frister - 2 Rob Wills 2 alts + 2 Rob Wills 2 israel - 1 Mathieu Mitchell - 1 Michael Bisbjerg - 1 capt8bit - 1 Nicolas Esteves + 2 Mark E. Haase + 2 Heikki Hannikainen + 1 Oleksandr Sheremet 1 Paul - 1 phil plante 1 Rory McCann - 1 Jakub Nawalaniec 1 Rune Halvorsen 1 Sahn Lam - 1 Ivaylo Popov - 1 Andy Smith - 1 Ulrich Petri - 1 Henrik Nordström 1 Felix Wolfsteller + 1 Eric Entzel + 1 Ulrich Petri + 1 Andy Smith 1 Yuangxuan Wang - 1 Kit Randel - 1 Marc Liyanage + 1 capt8bit 1 meeee - 1 Eric Entzel + 1 Jakub Nawalaniec + 1 Kit Randel + 1 phil plante + 1 Ivaylo Popov + 1 Mathieu Mitchell + 1 Henrik Nordström + 1 Michael Bisbjerg + 1 Nicolas Esteves diff --git a/release/osx-binaries b/release/osx-binaries index a5f17ba5..4be85800 100755 --- a/release/osx-binaries +++ b/release/osx-binaries @@ -2,8 +2,15 @@ # Quick and dangerous script for building OSX binaries. -# First, have a recent checkout of the dev version of pyinstaller. Change into -# the pyinstaller directory, and then run this script. +# A few quirks to note, which should be re-checked every release: +# - We require the latest development version of PyInstaller. + +# - PyInstaller has trouble detecting the zope.interfaces package. This is +# required by Twisted, which for mysterious reasons is required by Urwid. The +# answer is to touch the __init__.py file in the zope directory. On my system: +# touch /Library/Python/2.7/site-packages/zope/__init__.py + +# To run, change into the pyinstaller directory, and then run this script. DST=/tmp/osx-mitmproxy MITMPROXY=~/mitmproxy/mitmproxy diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index ad61de60..00000000 --- a/requirements.txt +++ /dev/null @@ -1,15 +0,0 @@ -Flask==0.9 -Jinja2==2.7 -MarkupSafe==0.18 -PIL==1.1.7 -Werkzeug==0.8.3 -lxml==3.2.1 -netlib==0.9 -nose==1.3.0 -pathod==0.9 -pyOpenSSL==0.13 -pyasn1==0.1.7 -requests==1.2.2 -urwid==1.1.1 -wsgiref==0.1.2 -jsbeautifier==1.4.0 -- cgit v1.2.3 From 8d954d9965b35eec2e54996c0d6ef5bcc0d40cd6 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 25 Aug 2013 10:37:35 +1200 Subject: Version bump. --- libmproxy/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libmproxy/version.py b/libmproxy/version.py index b3a9bd95..02d68411 100644 --- a/libmproxy/version.py +++ b/libmproxy/version.py @@ -1,4 +1,4 @@ -IVERSION = (0, 9, 1) +IVERSION = (0, 9, 2) VERSION = ".".join(str(i) for i in IVERSION) NAME = "mitmproxy" NAMEVERSION = NAME + " " + VERSION -- cgit v1.2.3 From 63ece45de528a41d4ca4e9eefbda731b2a225f9e Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Sun, 25 Aug 2013 03:45:32 +0200 Subject: add coveralls.io --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5f4a3602..cecfce12 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,12 @@ python: - "2.7" # command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors install: + - "pip install coveralls --use-mirrors" - "pip install -r requirements.txt --use-mirrors" - "pip install --upgrade git+https://github.com/mitmproxy/netlib.git" - "pip install --upgrade git+https://github.com/mitmproxy/pathod.git" # command to run tests, e.g. python setup.py test -script: nosetests \ No newline at end of file +script: + - "nosetests --with-cov --cov-report term-missing" +after_success: + - coveralls \ No newline at end of file -- cgit v1.2.3 From 08a26337a0f45ea24f0f118614c38ebd8e68b8b4 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Sun, 25 Aug 2013 03:53:19 +0200 Subject: re-add requirements.txt --- requirements.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..72b01ce7 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,15 @@ +Flask==0.9 +Jinja2==2.7 +MarkupSafe==0.18 +PIL==1.1.7 +Werkzeug==0.8.3 +lxml==3.2.1 +netlib==0.9.2 +nose==1.3.0 +pathod==0.9.2 +pyOpenSSL==0.13 +pyasn1==0.1.7 +requests==1.2.2 +urwid==1.1.1 +wsgiref==0.1.2 +jsbeautifier==1.4.0 \ No newline at end of file -- cgit v1.2.3 From 62fa2e6c07d66057984b33222069f14dfe856091 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Sun, 25 Aug 2013 04:03:53 +0200 Subject: fix travis, loose requirements.txt --- .travis.yml | 1 + requirements.txt | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/.travis.yml b/.travis.yml index cecfce12..c1084319 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ python: # command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors install: - "pip install coveralls --use-mirrors" + - "pip install nose-cov --use-mirrors" - "pip install -r requirements.txt --use-mirrors" - "pip install --upgrade git+https://github.com/mitmproxy/netlib.git" - "pip install --upgrade git+https://github.com/mitmproxy/pathod.git" diff --git a/requirements.txt b/requirements.txt index 72b01ce7..3ecd8ed4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,15 +1,15 @@ -Flask==0.9 -Jinja2==2.7 -MarkupSafe==0.18 -PIL==1.1.7 -Werkzeug==0.8.3 -lxml==3.2.1 -netlib==0.9.2 -nose==1.3.0 -pathod==0.9.2 -pyOpenSSL==0.13 -pyasn1==0.1.7 -requests==1.2.2 -urwid==1.1.1 -wsgiref==0.1.2 -jsbeautifier==1.4.0 \ No newline at end of file +Flask>=0.9 +Jinja2>=2.7 +MarkupSafe>=0.18 +PIL>=1.1.7 +Werkzeug>=0.8.3 +lxml>=3.2.1 +netlib>=0.9.2 +nose>=1.3.0 +pathod>=0.9.2 +pyOpenSSL>=0.13 +pyasn1>=0.1.7 +requests>=1.2.2 +urwid>=1.1.1 +wsgiref>=0.1.2 +jsbeautifier>=1.4.0 \ No newline at end of file -- cgit v1.2.3 From 404445cbdff3528b0b8b45a759e5b2f2c161ae2a Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Sun, 25 Aug 2013 04:19:43 +0200 Subject: exclude TestHTTPS for testing travis/coverage --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c1084319..61dfe73f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,6 @@ install: - "pip install --upgrade git+https://github.com/mitmproxy/pathod.git" # command to run tests, e.g. python setup.py test script: - - "nosetests --with-cov --cov-report term-missing" + - "nosetests -e TestHTTPS --with-cov --cov-report term-missing" after_success: - coveralls \ No newline at end of file -- cgit v1.2.3 From 38a1135ab8f3ab2e97d07fa8e339067c67722e16 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Sun, 25 Aug 2013 04:31:35 +0200 Subject: add status images to README, include TestHTTPS again --- .travis.yml | 2 +- README.mkd | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 61dfe73f..c1084319 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,6 @@ install: - "pip install --upgrade git+https://github.com/mitmproxy/pathod.git" # command to run tests, e.g. python setup.py test script: - - "nosetests -e TestHTTPS --with-cov --cov-report term-missing" + - "nosetests --with-cov --cov-report term-missing" after_success: - coveralls \ No newline at end of file diff --git a/README.mkd b/README.mkd index 8f564d7f..35b41413 100644 --- a/README.mkd +++ b/README.mkd @@ -1,3 +1,5 @@ +[![Build Status](https://travis-ci.org/mitmproxy/mitmproxy.png)](https://travis-ci.org/mitmproxy/mitmproxy) [![Coverage Status](https://coveralls.io/repos/mitmproxy/mitmproxy/badge.png)](https://coveralls.io/r/mitmproxy/mitmproxy) + __mitmproxy__ is an interactive, SSL-capable man-in-the-middle proxy for HTTP with a console interface. -- cgit v1.2.3