aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmproxy/flow.py4
-rw-r--r--test/test_flow.py10
2 files changed, 13 insertions, 1 deletions
diff --git a/libmproxy/flow.py b/libmproxy/flow.py
index 3605019c..2258868b 100644
--- a/libmproxy/flow.py
+++ b/libmproxy/flow.py
@@ -1494,9 +1494,11 @@ class FlowMaster(controller.Master):
"""
Returns None if successful, or error message if not.
"""
- #begin nocover
if f.intercepting:
return "Can't replay while intercepting..."
+ if f.request.content == CONTENT_MISSING:
+ return "Can't replay request with missing content..."
+ #begin nocover
if f.request:
f.request._set_replay()
if f.request.content:
diff --git a/test/test_flow.py b/test/test_flow.py
index d9933515..627d9cd0 100644
--- a/test/test_flow.py
+++ b/test/test_flow.py
@@ -516,6 +516,16 @@ class uFlowMaster(libpry.AutoTree):
assert fm.load_script("nonexistent")
assert "ValueError" in fm.load_script("scripts/starterr.py")
+ def test_replay(self):
+ s = flow.State()
+ fm = flow.FlowMaster(None, s)
+ f = tutils.tflow_full()
+ f.request.content = flow.CONTENT_MISSING
+ assert "missing" in fm.replay_request(f)
+
+ f.intercepting = True
+ assert "intercepting" in fm.replay_request(f)
+
def test_script_reqerr(self):
s = flow.State()
fm = flow.FlowMaster(None, s)