aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/mitmproxy/builtins/test_anticache.py5
-rw-r--r--test/mitmproxy/builtins/test_anticomp.py5
-rw-r--r--test/mitmproxy/builtins/test_dumper.py29
-rw-r--r--test/mitmproxy/builtins/test_filestreamer.py13
-rw-r--r--test/mitmproxy/builtins/test_replace.py26
-rw-r--r--test/mitmproxy/builtins/test_script.py32
-rw-r--r--test/mitmproxy/builtins/test_setheaders.py13
-rw-r--r--test/mitmproxy/builtins/test_stickyauth.py5
-rw-r--r--test/mitmproxy/builtins/test_stickycookie.py11
-rw-r--r--test/mitmproxy/data/addonscripts/addon.py4
-rw-r--r--test/mitmproxy/script/test_concurrent.py2
-rw-r--r--test/mitmproxy/test_addons.py5
-rw-r--r--test/mitmproxy/test_examples.py5
-rw-r--r--test/mitmproxy/test_optmanager.py8
-rw-r--r--test/mitmproxy/test_server.py4
-rw-r--r--test/mitmproxy/tservers.py2
16 files changed, 90 insertions, 79 deletions
diff --git a/test/mitmproxy/builtins/test_anticache.py b/test/mitmproxy/builtins/test_anticache.py
index 5a00af03..ac321e26 100644
--- a/test/mitmproxy/builtins/test_anticache.py
+++ b/test/mitmproxy/builtins/test_anticache.py
@@ -8,9 +8,10 @@ from mitmproxy import options
class TestAntiCache(mastertest.MasterTest):
def test_simple(self):
s = state.State()
- m = master.FlowMaster(options.Options(anticache = True), None, s)
+ o = options.Options(anticache = True)
+ m = master.FlowMaster(o, None, s)
sa = anticache.AntiCache()
- m.addons.add(sa)
+ m.addons.add(o, sa)
f = tutils.tflow(resp=True)
self.invoke(m, "request", f)
diff --git a/test/mitmproxy/builtins/test_anticomp.py b/test/mitmproxy/builtins/test_anticomp.py
index 6bfd54bb..a5f5a270 100644
--- a/test/mitmproxy/builtins/test_anticomp.py
+++ b/test/mitmproxy/builtins/test_anticomp.py
@@ -8,9 +8,10 @@ from mitmproxy import options
class TestAntiComp(mastertest.MasterTest):
def test_simple(self):
s = state.State()
- m = master.FlowMaster(options.Options(anticomp = True), None, s)
+ o = options.Options(anticomp = True)
+ m = master.FlowMaster(o, None, s)
sa = anticomp.AntiComp()
- m.addons.add(sa)
+ m.addons.add(o, sa)
f = tutils.tflow(resp=True)
self.invoke(m, "request", f)
diff --git a/test/mitmproxy/builtins/test_dumper.py b/test/mitmproxy/builtins/test_dumper.py
index 57e3d036..6287fe86 100644
--- a/test/mitmproxy/builtins/test_dumper.py
+++ b/test/mitmproxy/builtins/test_dumper.py
@@ -15,26 +15,27 @@ class TestDumper(mastertest.MasterTest):
d = dumper.Dumper()
sio = StringIO()
- d.configure(dump.Options(tfile = sio, flow_detail = 0))
+ updated = set(["tfile", "flow_detail"])
+ d.configure(dump.Options(tfile = sio, flow_detail = 0), updated)
d.response(tutils.tflow())
assert not sio.getvalue()
- d.configure(dump.Options(tfile = sio, flow_detail = 4))
+ d.configure(dump.Options(tfile = sio, flow_detail = 4), updated)
d.response(tutils.tflow())
assert sio.getvalue()
sio = StringIO()
- d.configure(dump.Options(tfile = sio, flow_detail = 4))
+ d.configure(dump.Options(tfile = sio, flow_detail = 4), updated)
d.response(tutils.tflow(resp=True))
assert "<<" in sio.getvalue()
sio = StringIO()
- d.configure(dump.Options(tfile = sio, flow_detail = 4))
+ d.configure(dump.Options(tfile = sio, flow_detail = 4), updated)
d.response(tutils.tflow(err=True))
assert "<<" in sio.getvalue()
sio = StringIO()
- d.configure(dump.Options(tfile = sio, flow_detail = 4))
+ d.configure(dump.Options(tfile = sio, flow_detail = 4), updated)
flow = tutils.tflow()
flow.request = netlib.tutils.treq()
flow.request.stickycookie = True
@@ -47,7 +48,7 @@ class TestDumper(mastertest.MasterTest):
assert sio.getvalue()
sio = StringIO()
- d.configure(dump.Options(tfile = sio, flow_detail = 4))
+ d.configure(dump.Options(tfile = sio, flow_detail = 4), updated)
flow = tutils.tflow(resp=netlib.tutils.tresp(content=b"{"))
flow.response.headers["content-type"] = "application/json"
flow.response.status_code = 400
@@ -55,7 +56,7 @@ class TestDumper(mastertest.MasterTest):
assert sio.getvalue()
sio = StringIO()
- d.configure(dump.Options(tfile = sio))
+ d.configure(dump.Options(tfile = sio), updated)
flow = tutils.tflow()
flow.request.content = None
flow.response = models.HTTPResponse.wrap(netlib.tutils.tresp())
@@ -72,15 +73,13 @@ class TestContentView(mastertest.MasterTest):
s = state.State()
sio = StringIO()
- m = mastertest.RecordingMaster(
- dump.Options(
- flow_detail=4,
- verbosity=3,
- tfile=sio,
- ),
- None, s
+ o = dump.Options(
+ flow_detail=4,
+ verbosity=3,
+ tfile=sio,
)
+ m = mastertest.RecordingMaster(o, None, s)
d = dumper.Dumper()
- m.addons.add(d)
+ m.addons.add(o, d)
self.invoke(m, "response", tutils.tflow())
assert "Content viewer failed" in m.event_log[0][1]
diff --git a/test/mitmproxy/builtins/test_filestreamer.py b/test/mitmproxy/builtins/test_filestreamer.py
index c1d5947f..0e69b340 100644
--- a/test/mitmproxy/builtins/test_filestreamer.py
+++ b/test/mitmproxy/builtins/test_filestreamer.py
@@ -20,16 +20,13 @@ class TestStream(mastertest.MasterTest):
return list(r.stream())
s = state.State()
- m = master.FlowMaster(
- options.Options(
- outfile = (p, "wb")
- ),
- None,
- s
+ o = options.Options(
+ outfile = (p, "wb")
)
+ m = master.FlowMaster(o, None, s)
sa = filestreamer.FileStreamer()
- m.addons.add(sa)
+ m.addons.add(o, sa)
f = tutils.tflow(resp=True)
self.invoke(m, "request", f)
self.invoke(m, "response", f)
@@ -39,7 +36,7 @@ class TestStream(mastertest.MasterTest):
m.options.outfile = (p, "ab")
- m.addons.add(sa)
+ m.addons.add(o, sa)
f = tutils.tflow()
self.invoke(m, "request", f)
m.addons.remove(sa)
diff --git a/test/mitmproxy/builtins/test_replace.py b/test/mitmproxy/builtins/test_replace.py
index a0b4b722..5e70ce56 100644
--- a/test/mitmproxy/builtins/test_replace.py
+++ b/test/mitmproxy/builtins/test_replace.py
@@ -8,38 +8,38 @@ from mitmproxy import options
class TestReplace(mastertest.MasterTest):
def test_configure(self):
r = replace.Replace()
+ updated = set(["replacements"])
r.configure(options.Options(
replacements=[("one", "two", "three")]
- ))
+ ), updated)
tutils.raises(
"invalid filter pattern",
r.configure,
options.Options(
replacements=[("~b", "two", "three")]
- )
+ ),
+ updated
)
tutils.raises(
"invalid regular expression",
r.configure,
options.Options(
replacements=[("foo", "+", "three")]
- )
+ ),
+ updated
)
def test_simple(self):
s = state.State()
- m = master.FlowMaster(
- options.Options(
- replacements = [
- ("~q", "foo", "bar"),
- ("~s", "foo", "bar"),
- ]
- ),
- None,
- s
+ o = options.Options(
+ replacements = [
+ ("~q", "foo", "bar"),
+ ("~s", "foo", "bar"),
+ ]
)
+ m = master.FlowMaster(o, None, s)
sa = replace.Replace()
- m.addons.add(sa)
+ m.addons.add(o, sa)
f = tutils.tflow()
f.request.content = b"foo"
diff --git a/test/mitmproxy/builtins/test_script.py b/test/mitmproxy/builtins/test_script.py
index 826d2a91..2870fd17 100644
--- a/test/mitmproxy/builtins/test_script.py
+++ b/test/mitmproxy/builtins/test_script.py
@@ -54,16 +54,17 @@ def test_load_script():
class TestScript(mastertest.MasterTest):
def test_simple(self):
s = state.State()
- m = master.FlowMaster(options.Options(), None, s)
+ o = options.Options()
+ m = master.FlowMaster(o, None, s)
sc = script.Script(
tutils.test_data.path(
"data/addonscripts/recorder.py"
)
)
- m.addons.add(sc)
+ m.addons.add(o, sc)
assert sc.ns.call_log == [
("solo", "start", (), {}),
- ("solo", "configure", (options.Options(),), {})
+ ("solo", "configure", (o, o.keys()), {})
]
sc.ns.call_log = []
@@ -75,12 +76,13 @@ class TestScript(mastertest.MasterTest):
def test_reload(self):
s = state.State()
- m = mastertest.RecordingMaster(options.Options(), None, s)
+ o = options.Options()
+ m = mastertest.RecordingMaster(o, None, s)
with tutils.tmpdir():
with open("foo.py", "w"):
pass
sc = script.Script("foo.py")
- m.addons.add(sc)
+ m.addons.add(o, sc)
for _ in range(100):
with open("foo.py", "a") as f:
@@ -93,19 +95,22 @@ class TestScript(mastertest.MasterTest):
def test_exception(self):
s = state.State()
- m = mastertest.RecordingMaster(options.Options(), None, s)
+ o = options.Options()
+ m = mastertest.RecordingMaster(o, None, s)
sc = script.Script(
tutils.test_data.path("data/addonscripts/error.py")
)
- m.addons.add(sc)
+ m.addons.add(o, sc)
f = tutils.tflow(resp=True)
self.invoke(m, "request", f)
assert m.event_log[0][0] == "error"
def test_duplicate_flow(self):
s = state.State()
- fm = master.FlowMaster(None, None, s)
+ o = options.Options()
+ fm = master.FlowMaster(o, None, s)
fm.addons.add(
+ o,
script.Script(
tutils.test_data.path("data/addonscripts/duplicate_flow.py")
)
@@ -118,13 +123,14 @@ class TestScript(mastertest.MasterTest):
def test_addon(self):
s = state.State()
- m = master.FlowMaster(options.Options(), None, s)
+ o = options.Options()
+ m = master.FlowMaster(o, None, s)
sc = script.Script(
tutils.test_data.path(
"data/addonscripts/addon.py"
)
)
- m.addons.add(sc)
+ m.addons.add(o, sc)
assert sc.ns.event_log == [
'scriptstart', 'addonstart', 'addonconfigure'
]
@@ -136,7 +142,7 @@ class TestScriptLoader(mastertest.MasterTest):
o = options.Options(scripts=[])
m = master.FlowMaster(o, None, s)
sc = script.ScriptLoader()
- m.addons.add(sc)
+ m.addons.add(o, sc)
assert len(m.addons) == 1
o.update(
scripts = [
@@ -152,7 +158,7 @@ class TestScriptLoader(mastertest.MasterTest):
o = options.Options(scripts=["one", "one"])
m = master.FlowMaster(o, None, s)
sc = script.ScriptLoader()
- tutils.raises(exceptions.OptionsError, m.addons.add, sc)
+ tutils.raises(exceptions.OptionsError, m.addons.add, o, sc)
def test_order(self):
rec = tutils.test_data.path("data/addonscripts/recorder.py")
@@ -167,7 +173,7 @@ class TestScriptLoader(mastertest.MasterTest):
)
m = mastertest.RecordingMaster(o, None, s)
sc = script.ScriptLoader()
- m.addons.add(sc)
+ m.addons.add(o, sc)
debug = [(i[0], i[1]) for i in m.event_log if i[0] == "debug"]
assert debug == [
diff --git a/test/mitmproxy/builtins/test_setheaders.py b/test/mitmproxy/builtins/test_setheaders.py
index 4465719d..41c18360 100644
--- a/test/mitmproxy/builtins/test_setheaders.py
+++ b/test/mitmproxy/builtins/test_setheaders.py
@@ -8,19 +8,20 @@ from mitmproxy import options
class TestSetHeaders(mastertest.MasterTest):
def mkmaster(self, **opts):
s = state.State()
- m = mastertest.RecordingMaster(options.Options(**opts), None, s)
+ o = options.Options(**opts)
+ m = mastertest.RecordingMaster(o, None, s)
sh = setheaders.SetHeaders()
- m.addons.add(sh)
+ m.addons.add(o, sh)
return m, sh
def test_configure(self):
sh = setheaders.SetHeaders()
+ o = options.Options(
+ setheaders = [("~b", "one", "two")]
+ )
tutils.raises(
"invalid setheader filter pattern",
- sh.configure,
- options.Options(
- setheaders = [("~b", "one", "two")]
- )
+ sh.configure, o, o.keys()
)
def test_setheaders(self):
diff --git a/test/mitmproxy/builtins/test_stickyauth.py b/test/mitmproxy/builtins/test_stickyauth.py
index 9233f435..5757fb2d 100644
--- a/test/mitmproxy/builtins/test_stickyauth.py
+++ b/test/mitmproxy/builtins/test_stickyauth.py
@@ -8,9 +8,10 @@ from mitmproxy import options
class TestStickyAuth(mastertest.MasterTest):
def test_simple(self):
s = state.State()
- m = master.FlowMaster(options.Options(stickyauth = ".*"), None, s)
+ o = options.Options(stickyauth = ".*")
+ m = master.FlowMaster(o, None, s)
sa = stickyauth.StickyAuth()
- m.addons.add(sa)
+ m.addons.add(o, sa)
f = tutils.tflow(resp=True)
f.request.headers["authorization"] = "foo"
diff --git a/test/mitmproxy/builtins/test_stickycookie.py b/test/mitmproxy/builtins/test_stickycookie.py
index 81b540db..e9d92c83 100644
--- a/test/mitmproxy/builtins/test_stickycookie.py
+++ b/test/mitmproxy/builtins/test_stickycookie.py
@@ -14,22 +14,23 @@ def test_domain_match():
class TestStickyCookie(mastertest.MasterTest):
def mk(self):
s = state.State()
- m = master.FlowMaster(options.Options(stickycookie = ".*"), None, s)
+ o = options.Options(stickycookie = ".*")
+ m = master.FlowMaster(o, None, s)
sc = stickycookie.StickyCookie()
- m.addons.add(sc)
+ m.addons.add(o, sc)
return s, m, sc
def test_config(self):
sc = stickycookie.StickyCookie()
+ o = options.Options(stickycookie = "~b")
tutils.raises(
"invalid filter",
- sc.configure,
- options.Options(stickycookie = "~b")
+ sc.configure, o, o.keys()
)
def test_simple(self):
s, m, sc = self.mk()
- m.addons.add(sc)
+ m.addons.add(m.options, sc)
f = tutils.tflow(resp=True)
f.response.headers["set-cookie"] = "foo=bar"
diff --git a/test/mitmproxy/data/addonscripts/addon.py b/test/mitmproxy/data/addonscripts/addon.py
index 3b09d231..84173cb6 100644
--- a/test/mitmproxy/data/addonscripts/addon.py
+++ b/test/mitmproxy/data/addonscripts/addon.py
@@ -9,11 +9,11 @@ class Addon:
def start(self):
event_log.append("addonstart")
- def configure(self, options):
+ def configure(self, options, updated):
event_log.append("addonconfigure")
-def configure(options):
+def configure(options, updated):
event_log.append("addonconfigure")
diff --git a/test/mitmproxy/script/test_concurrent.py b/test/mitmproxy/script/test_concurrent.py
index 080746e8..a5f76994 100644
--- a/test/mitmproxy/script/test_concurrent.py
+++ b/test/mitmproxy/script/test_concurrent.py
@@ -23,7 +23,7 @@ class TestConcurrent(mastertest.MasterTest):
"data/addonscripts/concurrent_decorator.py"
)
)
- m.addons.add(sc)
+ m.addons.add(m.options, sc)
f1, f2 = tutils.tflow(), tutils.tflow()
self.invoke(m, "request", f1)
self.invoke(m, "request", f2)
diff --git a/test/mitmproxy/test_addons.py b/test/mitmproxy/test_addons.py
index 1861d4ac..a5085ea0 100644
--- a/test/mitmproxy/test_addons.py
+++ b/test/mitmproxy/test_addons.py
@@ -13,8 +13,9 @@ class TAddon:
def test_simple():
- m = controller.Master(options.Options())
+ o = options.Options()
+ m = controller.Master(o)
a = addons.Addons(m)
- a.add(TAddon("one"))
+ a.add(o, TAddon("one"))
assert a.has_addon("one")
assert not a.has_addon("two")
diff --git a/test/mitmproxy/test_examples.py b/test/mitmproxy/test_examples.py
index 0ec85f52..34fcc261 100644
--- a/test/mitmproxy/test_examples.py
+++ b/test/mitmproxy/test_examples.py
@@ -27,10 +27,11 @@ class RaiseMaster(master.FlowMaster):
def tscript(cmd, args=""):
+ o = options.Options()
cmd = example_dir.path(cmd) + " " + args
- m = RaiseMaster(options.Options(), None, state.State())
+ m = RaiseMaster(o, None, state.State())
sc = script.Script(cmd)
- m.addons.add(sc)
+ m.addons.add(o, sc)
return m, sc
diff --git a/test/mitmproxy/test_optmanager.py b/test/mitmproxy/test_optmanager.py
index 67f76ecd..8414e6b5 100644
--- a/test/mitmproxy/test_optmanager.py
+++ b/test/mitmproxy/test_optmanager.py
@@ -15,6 +15,8 @@ class TO(optmanager.OptManager):
def test_options():
o = TO(two="three")
+ assert o.keys() == set(["one", "two"])
+
assert o.one is None
assert o.two == "three"
o.one = "one"
@@ -29,7 +31,7 @@ def test_options():
rec = []
- def sub(opts):
+ def sub(opts, updated):
rec.append(copy.copy(opts))
o.changed.connect(sub)
@@ -68,7 +70,7 @@ def test_rollback():
rec = []
- def sub(opts):
+ def sub(opts, updated):
rec.append(copy.copy(opts))
recerr = []
@@ -76,7 +78,7 @@ def test_rollback():
def errsub(opts, **kwargs):
recerr.append(kwargs)
- def err(opts):
+ def err(opts, updated):
if opts.one == "ten":
raise exceptions.OptionsError()
diff --git a/test/mitmproxy/test_server.py b/test/mitmproxy/test_server.py
index 233af597..6230fc1f 100644
--- a/test/mitmproxy/test_server.py
+++ b/test/mitmproxy/test_server.py
@@ -291,7 +291,7 @@ class TestHTTP(tservers.HTTPProxyTest, CommonMixin, AppMixin):
s = script.Script(
tutils.test_data.path("data/addonscripts/stream_modify.py")
)
- self.master.addons.add(s)
+ self.master.addons.add(self.master.options, s)
d = self.pathod('200:b"foo"')
assert d.content == b"bar"
self.master.addons.remove(s)
@@ -523,7 +523,7 @@ class TestTransparent(tservers.TransparentProxyTest, CommonMixin, TcpMixin):
s = script.Script(
tutils.test_data.path("data/addonscripts/tcp_stream_modify.py")
)
- self.master.addons.add(s)
+ self.master.addons.add(self.master.options, s)
self._tcpproxy_on()
d = self.pathod('200:b"foo"')
self._tcpproxy_off()
diff --git a/test/mitmproxy/tservers.py b/test/mitmproxy/tservers.py
index f5119166..d364162c 100644
--- a/test/mitmproxy/tservers.py
+++ b/test/mitmproxy/tservers.py
@@ -34,7 +34,7 @@ class TestMaster(flow.FlowMaster):
s = ProxyServer(config)
state = flow.State()
flow.FlowMaster.__init__(self, opts, s, state)
- self.addons.add(*builtins.default_addons())
+ self.addons.add(opts, *builtins.default_addons())
self.apps.add(testapp, "testapp", 80)
self.apps.add(errapp, "errapp", 80)
self.clear_log()