Merge pull request #2363 from ujjwal96/test-coverage

Test coverage increase
This commit is contained in:
Thomas Kriechbaumer 2017-05-31 09:56:32 +02:00 committed by GitHub
commit e14c4947e2
4 changed files with 32 additions and 11 deletions

View File

@ -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

View File

@ -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

View File

@ -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()

View File

@ -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,10 +170,18 @@ 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
@ -181,6 +189,13 @@ class TestHTTPFlow:
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()