diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/mitmproxy/addons/test_clientplayback.py | 75 | ||||
-rw-r--r-- | test/mitmproxy/addons/test_script.py | 12 | ||||
-rw-r--r-- | test/mitmproxy/test_flowfilter.py | 1 |
3 files changed, 60 insertions, 28 deletions
diff --git a/test/mitmproxy/addons/test_clientplayback.py b/test/mitmproxy/addons/test_clientplayback.py index 03fcfe47..32eca536 100644 --- a/test/mitmproxy/addons/test_clientplayback.py +++ b/test/mitmproxy/addons/test_clientplayback.py @@ -1,38 +1,65 @@ -from mitmproxy.test import tflow +import os import mock +from mitmproxy.test import tflow +from mitmproxy.test import tutils +from mitmproxy import io +from mitmproxy import exceptions + from mitmproxy.addons import clientplayback -from mitmproxy import options +from mitmproxy.test import taddons + + +def tdump(path, flows): + w = io.FlowWriter(open(path, "wb")) + for i in flows: + w.add(i) -from .. import mastertest + +class MockThread(): + def is_alive(self): + return False class TestClientPlayback: def test_playback(self): cp = clientplayback.ClientPlayback() - cp.configure(options.Options(), []) - assert cp.count() == 0 - f = tflow.tflow(resp=True) - cp.load([f]) - assert cp.count() == 1 - RP = "mitmproxy.proxy.protocol.http_replay.RequestReplayThread" - with mock.patch(RP) as rp: - assert not cp.current - with mastertest.mockctx(): + with taddons.context(): + assert cp.count() == 0 + f = tflow.tflow(resp=True) + cp.load([f]) + assert cp.count() == 1 + RP = "mitmproxy.proxy.protocol.http_replay.RequestReplayThread" + with mock.patch(RP) as rp: + assert not cp.current_thread + cp.tick() + rp.assert_called() + assert cp.current_thread + + cp.keepserving = False + cp.flows = None + cp.current_thread = None + with mock.patch("mitmproxy.master.Master.shutdown") as sd: cp.tick() - rp.assert_called() - assert cp.current - - cp.keepserving = False - cp.flows = None - cp.current = None - with mock.patch("mitmproxy.master.Master.shutdown") as sd: - with mastertest.mockctx(): + sd.assert_called() + + cp.current_thread = MockThread() + with mock.patch("mitmproxy.master.Master.shutdown") as sd: cp.tick() - sd.assert_called() + assert cp.current_thread is None def test_configure(self): cp = clientplayback.ClientPlayback() - cp.configure( - options.Options(), [] - ) + with taddons.context() as tctx: + with tutils.tmpdir() as td: + path = os.path.join(td, "flows") + tdump(path, [tflow.tflow()]) + tctx.configure(cp, client_replay=[path]) + tctx.configure(cp, client_replay=[]) + tctx.configure(cp) + tutils.raises( + exceptions.OptionsError, + tctx.configure, + cp, + client_replay=["nonexistent"] + ) diff --git a/test/mitmproxy/addons/test_script.py b/test/mitmproxy/addons/test_script.py index c8d7318f..c72dac40 100644 --- a/test/mitmproxy/addons/test_script.py +++ b/test/mitmproxy/addons/test_script.py @@ -34,9 +34,15 @@ class TestParseCommand: def test_parse_args(self): with tutils.chdir(tutils.test_data.dirname): - assert script.parse_command("mitmproxy/data/addonscripts/recorder.py") == ("mitmproxy/data/addonscripts/recorder.py", []) - assert script.parse_command("mitmproxy/data/addonscripts/recorder.py foo bar") == ("mitmproxy/data/addonscripts/recorder.py", ["foo", "bar"]) - assert script.parse_command("mitmproxy/data/addonscripts/recorder.py 'foo bar'") == ("mitmproxy/data/addonscripts/recorder.py", ["foo bar"]) + assert script.parse_command( + "mitmproxy/data/addonscripts/recorder.py" + ) == ("mitmproxy/data/addonscripts/recorder.py", []) + assert script.parse_command( + "mitmproxy/data/addonscripts/recorder.py foo bar" + ) == ("mitmproxy/data/addonscripts/recorder.py", ["foo", "bar"]) + assert script.parse_command( + "mitmproxy/data/addonscripts/recorder.py 'foo bar'" + ) == ("mitmproxy/data/addonscripts/recorder.py", ["foo bar"]) @ttutils.skip_not_windows def test_parse_windows(self): diff --git a/test/mitmproxy/test_flowfilter.py b/test/mitmproxy/test_flowfilter.py index a1b77c05..2d409994 100644 --- a/test/mitmproxy/test_flowfilter.py +++ b/test/mitmproxy/test_flowfilter.py @@ -3,7 +3,6 @@ from mitmproxy.test import tflow from mock import patch from mitmproxy import flowfilter -from mitmproxy.test import tutils from . import tutils as ttutils |