aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2016-06-08 12:58:58 +1200
committerAldo Cortesi <aldo@nullcube.com>2016-06-08 12:58:58 +1200
commita5cb241c7cb1035b4d9ff43fb1c8958b7b3dac1d (patch)
treeb6d29eb42c7989e5b44fb9221a358fecfe672ad4 /test
parentb3bf754e539555351230cbb0887f8838c12fd23c (diff)
downloadmitmproxy-a5cb241c7cb1035b4d9ff43fb1c8958b7b3dac1d.tar.gz
mitmproxy-a5cb241c7cb1035b4d9ff43fb1c8958b7b3dac1d.tar.bz2
mitmproxy-a5cb241c7cb1035b4d9ff43fb1c8958b7b3dac1d.zip
If a message has been acked, all other processors are skipped
This applies the constraint, but does to clumsily. When we've unified modules and processors it will be much nicer. We also make some exceptions for the master processors that we may want to re-evaluate down the track.
Diffstat (limited to 'test')
-rw-r--r--test/mitmproxy/mastertest.py2
-rw-r--r--test/mitmproxy/test_flow.py8
2 files changed, 10 insertions, 0 deletions
diff --git a/test/mitmproxy/mastertest.py b/test/mitmproxy/mastertest.py
index 9bb8826d..4d04f337 100644
--- a/test/mitmproxy/mastertest.py
+++ b/test/mitmproxy/mastertest.py
@@ -16,7 +16,9 @@ class MasterTest:
master.request(f)
if not f.error:
f.response = models.HTTPResponse.wrap(netlib.tutils.tresp(content=content))
+ f.reply.acked = False
f = master.response(f)
+ f.client_conn.reply.acked = False
master.clientdisconnect(f.client_conn)
return f
diff --git a/test/mitmproxy/test_flow.py b/test/mitmproxy/test_flow.py
index 1b1f03f9..af8256c4 100644
--- a/test/mitmproxy/test_flow.py
+++ b/test/mitmproxy/test_flow.py
@@ -807,17 +807,22 @@ class TestFlowMaster:
fm.load_script(tutils.test_data.path("data/scripts/all.py"))
f = tutils.tflow(resp=True)
+ f.client_conn.acked = False
fm.clientconnect(f.client_conn)
assert fm.scripts[0].ns["log"][-1] == "clientconnect"
+ f.server_conn.acked = False
fm.serverconnect(f.server_conn)
assert fm.scripts[0].ns["log"][-1] == "serverconnect"
+ f.reply.acked = False
fm.request(f)
assert fm.scripts[0].ns["log"][-1] == "request"
+ f.reply.acked = False
fm.response(f)
assert fm.scripts[0].ns["log"][-1] == "response"
# load second script
fm.load_script(tutils.test_data.path("data/scripts/all.py"))
assert len(fm.scripts) == 2
+ f.server_conn.reply.acked = False
fm.clientdisconnect(f.server_conn)
assert fm.scripts[0].ns["log"][-1] == "clientdisconnect"
assert fm.scripts[1].ns["log"][-1] == "clientdisconnect"
@@ -828,6 +833,7 @@ class TestFlowMaster:
fm.load_script(tutils.test_data.path("data/scripts/all.py"))
f.error = tutils.terr()
+ f.reply.acked = False
fm.error(f)
assert fm.scripts[0].ns["log"][-1] == "error"
@@ -977,10 +983,12 @@ class TestFlowMaster:
f = tutils.tflow(resp=True)
f.response.headers["set-cookie"] = "foo=bar"
fm.request(f)
+ f.reply.acked = False
fm.response(f)
assert fm.stickycookie_state.jar
assert "cookie" not in f.request.headers
f = f.copy()
+ f.reply.acked = False
fm.request(f)
assert f.request.headers["cookie"] == "foo=bar"