aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_flow.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2011-08-03 16:36:20 +1200
committerAldo Cortesi <aldo@nullcube.com>2011-08-03 16:36:20 +1200
commit179cf758624152a4988e04a767759cb15b9c358a (patch)
tree6e9351565b9241c9f8d751418cae93cd012d0550 /test/test_flow.py
parentf7e4e89b124e0bc20cf8192227add04bd92846ae (diff)
downloadmitmproxy-179cf758624152a4988e04a767759cb15b9c358a.tar.gz
mitmproxy-179cf758624152a4988e04a767759cb15b9c358a.tar.bz2
mitmproxy-179cf758624152a4988e04a767759cb15b9c358a.zip
Add script hooks, enable new engine for mitmdump.
Diffstat (limited to 'test/test_flow.py')
-rw-r--r--test/test_flow.py36
1 files changed, 26 insertions, 10 deletions
diff --git a/test/test_flow.py b/test/test_flow.py
index 6e1de9af..45aee311 100644
--- a/test/test_flow.py
+++ b/test/test_flow.py
@@ -138,15 +138,6 @@ class uFlow(libpry.AutoTree):
assert "DEBUG" == se.strip()
assert f.request.host == "TESTOK"
- def test_run_script_err(self):
- f = tutils.tflow()
- f.response = tutils.tresp()
- f.request = f.response.request
- libpry.raises("returned error", f.run_script,"scripts/err_return")
- libpry.raises("invalid response", f.run_script,"scripts/err_data")
- libpry.raises("no such file", f.run_script,"nonexistent")
- libpry.raises("permission denied", f.run_script,"scripts/nonexecutable")
-
def test_match(self):
f = tutils.tflow()
f.response = tutils.tresp()
@@ -449,13 +440,38 @@ class uSerialize(libpry.AutoTree):
class uFlowMaster(libpry.AutoTree):
+ def test_load_script(self):
+ s = flow.State()
+ fm = flow.FlowMaster(None, s)
+ assert not fm.load_script("scripts/a.py")
+ assert fm.load_script("nonexistent")
+ assert "ValueError" in fm.load_script("scripts/starterr.py")
+
+ def test_script(self):
+ s = flow.State()
+ fm = flow.FlowMaster(None, s)
+ assert not fm.load_script("scripts/all.py")
+ req = tutils.treq()
+ fm.handle_clientconnect(req.client_conn)
+ assert fm.script.ns["log"][-1] == "clientconnect"
+ f = fm.handle_request(req)
+ assert fm.script.ns["log"][-1] == "request"
+ resp = tutils.tresp(req)
+ fm.handle_response(resp)
+ assert fm.script.ns["log"][-1] == "response"
+ dc = proxy.ClientDisconnect(req.client_conn)
+ fm.handle_clientdisconnect(dc)
+ assert fm.script.ns["log"][-1] == "clientdisconnect"
+ err = proxy.Error(f.request, "msg")
+ fm.handle_error(err)
+ assert fm.script.ns["log"][-1] == "error"
+
def test_all(self):
s = flow.State()
fm = flow.FlowMaster(None, s)
fm.anticache = True
fm.anticomp = True
req = tutils.treq()
-
fm.handle_clientconnect(req.client_conn)
f = fm.handle_request(req)