aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Kriechbaumer <Kriechi@users.noreply.github.com>2017-05-31 09:56:32 +0200
committerGitHub <noreply@github.com>2017-05-31 09:56:32 +0200
commite14c4947e2259281ec03f7fdf2b475143e05c6a9 (patch)
tree94e5812d6606815987f7a96ec2894c7036713e53
parentec7d7c995c0d8e93332b43699ad372f9555c9b75 (diff)
parent19765f4eb9b02fe75d93e5ec61fcb74768f8caf0 (diff)
downloadmitmproxy-e14c4947e2259281ec03f7fdf2b475143e05c6a9.tar.gz
mitmproxy-e14c4947e2259281ec03f7fdf2b475143e05c6a9.tar.bz2
mitmproxy-e14c4947e2259281ec03f7fdf2b475143e05c6a9.zip
Merge pull request #2363 from ujjwal96/test-coverage
Test coverage increase
-rw-r--r--mitmproxy/master.py8
-rw-r--r--setup.cfg2
-rw-r--r--test/mitmproxy/test_flow.py16
-rw-r--r--test/mitmproxy/test_http.py17
4 files changed, 32 insertions, 11 deletions
diff --git a/mitmproxy/master.py b/mitmproxy/master.py
index d21a323e..b17f7e5d 100644
--- a/mitmproxy/master.py
+++ b/mitmproxy/master.py
@@ -147,14 +147,14 @@ class Master:
raise exceptions.ReplayException(
"Can't replay intercepted flow."
)
- if f.request.raw_content is None:
- raise exceptions.ReplayException(
- "Can't replay flow with missing content."
- )
if not f.request:
raise exceptions.ReplayException(
"Can't replay flow with missing request."
)
+ if f.request.raw_content is None:
+ raise exceptions.ReplayException(
+ "Can't replay flow with missing content."
+ )
f.backup()
f.request.is_replay = True
diff --git a/setup.cfg b/setup.cfg
index fc35021c..1ec17ecb 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -26,8 +26,6 @@ exclude =
mitmproxy/proxy/root_context.py
mitmproxy/proxy/server.py
mitmproxy/tools/
- mitmproxy/flow.py
- mitmproxy/master.py
pathod/pathoc.py
pathod/pathod.py
pathod/test.py
diff --git a/test/mitmproxy/test_flow.py b/test/mitmproxy/test_flow.py
index 19f0e7d9..9f6ed585 100644
--- a/test/mitmproxy/test_flow.py
+++ b/test/mitmproxy/test_flow.py
@@ -7,7 +7,7 @@ from mitmproxy import flowfilter
from mitmproxy import options
from mitmproxy.proxy import config
from mitmproxy.io import tnetstring
-from mitmproxy.exceptions import FlowReadException
+from mitmproxy.exceptions import FlowReadException, ReplayException, ControlException
from mitmproxy import flow
from mitmproxy import http
from mitmproxy.proxy.server import DummyServer
@@ -102,15 +102,19 @@ class TestFlowMaster:
fm = master.Master(None, DummyServer())
f = tflow.tflow(resp=True)
f.request.content = None
- with pytest.raises(Exception, match="missing"):
+ with pytest.raises(ReplayException, match="missing"):
+ fm.replay_request(f)
+
+ f.request = None
+ with pytest.raises(ReplayException, match="request"):
fm.replay_request(f)
f.intercepted = True
- with pytest.raises(Exception, match="intercepted"):
+ with pytest.raises(ReplayException, match="intercepted"):
fm.replay_request(f)
f.live = True
- with pytest.raises(Exception, match="live"):
+ with pytest.raises(ReplayException, match="live"):
fm.replay_request(f)
def test_all(self):
@@ -132,6 +136,10 @@ class TestFlowMaster:
f.error = flow.Error("msg")
fm.addons.handle_lifecycle("error", f)
+ fm.tell("foo", f)
+ with pytest.raises(ControlException):
+ fm.tick(timeout=1)
+
fm.shutdown()
diff --git a/test/mitmproxy/test_http.py b/test/mitmproxy/test_http.py
index aa283530..4463961a 100644
--- a/test/mitmproxy/test_http.py
+++ b/test/mitmproxy/test_http.py
@@ -4,7 +4,7 @@ from mitmproxy.test import tflow
from mitmproxy.net.http import Headers
import mitmproxy.io
from mitmproxy import flowfilter
-from mitmproxy.exceptions import Kill
+from mitmproxy.exceptions import Kill, ControlException
from mitmproxy import flow
from mitmproxy import http
@@ -170,17 +170,32 @@ class TestHTTPFlow:
assert not f == f2
f2.error = flow.Error("e2")
assert not f == f2
+ f2.backup()
+ f2.intercept() # to change the state
f.set_state(f2.get_state())
assert f.get_state() == f2.get_state()
def test_kill(self):
f = tflow.tflow()
+ with pytest.raises(ControlException):
+ f.intercept()
+ f.resume()
+ f.kill()
+
+ f = tflow.tflow()
f.intercept()
assert f.killable
f.kill()
assert not f.killable
assert f.reply.value == Kill
+ def test_intercept(self):
+ f = tflow.tflow()
+ f.intercept()
+ assert f.reply.state == "taken"
+ f.intercept()
+ assert f.reply.state == "taken"
+
def test_resume(self):
f = tflow.tflow()
f.intercept()