aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/mitmproxy/addons/test_view.py52
-rw-r--r--test/mitmproxy/console/test_master.py97
2 files changed, 31 insertions, 118 deletions
diff --git a/test/mitmproxy/addons/test_view.py b/test/mitmproxy/addons/test_view.py
index 2715fd6a..c7a9821a 100644
--- a/test/mitmproxy/addons/test_view.py
+++ b/test/mitmproxy/addons/test_view.py
@@ -1,6 +1,8 @@
from mitmproxy.test import tflow
from mitmproxy.addons import view
from mitmproxy import flowfilter
+from mitmproxy import options
+from mitmproxy.test import taddons
from .. import tutils
@@ -31,6 +33,10 @@ def test_simple():
assert list(v) == [f, f3, f2]
assert len(v._store) == 3
+ v.clear()
+ assert len(v) == 0
+ assert len(v._store) == 0
+
def tft(*, method="get", start=0):
f = tflow.tflow()
@@ -52,6 +58,14 @@ def test_filter():
assert len(v._store) == 4
v.set_filter(None)
+ assert len(v) == 4
+ v[1].marked = True
+ v.toggle_marked()
+ assert len(v) == 1
+ assert v[0].marked
+ v.toggle_marked()
+ assert len(v) == 4
+
def test_order():
v = view.View()
@@ -236,31 +250,6 @@ def test_focus():
assert f.index is None
-def test_focus_nextprev():
- v = view.View()
- # Nops on an empty view
- v.focus.next()
- v.focus.prev()
-
- # Nops on a single-flow view
- v.add(tft(start=0))
- assert v.focus.flow == v[0]
- v.focus.next()
- assert v.focus.flow == v[0]
- v.focus.prev()
- assert v.focus.flow == v[0]
-
- v.add(tft(start=1))
- v.focus.next()
- assert v.focus.flow == v[1]
- v.focus.next()
- assert v.focus.flow == v[1]
- v.focus.prev()
- assert v.focus.flow == v[0]
- v.focus.prev()
- assert v.focus.flow == v[0]
-
-
def test_settings():
v = view.View()
f = tft()
@@ -274,3 +263,16 @@ def test_settings():
v.remove(f)
tutils.raises(KeyError, v.settings.__getitem__, f)
assert not v.settings.keys()
+
+
+class Options(options.Options):
+ def __init__(self, *, filter=None, **kwargs):
+ self.filter = filter
+ super().__init__(**kwargs)
+
+
+def test_configure():
+ v = view.View()
+ with taddons.context(options=Options()) as tctx:
+ tctx.configure(v, filter="~q")
+ tutils.raises("invalid interception filter", tctx.configure, v, filter="~~")
diff --git a/test/mitmproxy/console/test_master.py b/test/mitmproxy/console/test_master.py
index fe552062..eb840187 100644
--- a/test/mitmproxy/console/test_master.py
+++ b/test/mitmproxy/console/test_master.py
@@ -1,5 +1,3 @@
-import gc
-
from mitmproxy.test import tflow
import mitmproxy.test.tutils
from mitmproxy.tools import console
@@ -9,93 +7,6 @@ from mitmproxy.tools.console import common
from .. import mastertest
-class TestConsoleState:
-
- def test_flow(self):
- """
- normal flow:
-
- connect -> request -> response
- """
- c = console.master.ConsoleState()
- f = self._add_request(c)
- assert f in c.flows
- assert c.get_focus() == (f, 0)
-
- def test_focus(self):
- """
- normal flow:
-
- connect -> request -> response
- """
- c = console.master.ConsoleState()
- f = self._add_request(c)
-
- assert c.get_focus() == (f, 0)
- assert c.get_from_pos(0) == (f, 0)
- assert c.get_from_pos(1) == (None, None)
- assert c.get_next(0) == (None, None)
-
- f2 = self._add_request(c)
- assert c.get_focus() == (f, 0)
- assert c.get_next(0) == (f2, 1)
- assert c.get_prev(1) == (f, 0)
- assert c.get_next(1) == (None, None)
-
- c.set_focus(0)
- assert c.get_focus() == (f, 0)
- c.set_focus(-1)
- assert c.get_focus() == (f, 0)
- c.set_focus(2)
- assert c.get_focus() == (f2, 1)
-
- c.delete_flow(f2)
- assert c.get_focus() == (f, 0)
- c.delete_flow(f)
- assert c.get_focus() == (None, None)
-
- def _add_request(self, state):
- f = tflow.tflow()
- return state.add_flow(f)
-
- def _add_response(self, state):
- f = self._add_request(state)
- f.response = mitmproxy.test.tutils.tresp()
- state.update_flow(f)
-
- def test_add_response(self):
- c = console.master.ConsoleState()
- f = self._add_request(c)
- f.response = mitmproxy.test.tutils.tresp()
- c.focus = None
- c.update_flow(f)
-
- def test_focus_view(self):
- c = console.master.ConsoleState()
- self._add_request(c)
- self._add_response(c)
- self._add_request(c)
- self._add_response(c)
- self._add_request(c)
- self._add_response(c)
- assert not c.set_view_filter("~s")
- assert len(c.view) == 3
- assert c.focus == 0
-
- def test_settings(self):
- c = console.master.ConsoleState()
- f = self._add_request(c)
- c.add_flow_setting(f, "foo", "bar")
- assert c.get_flow_setting(f, "foo") == "bar"
- assert c.get_flow_setting(f, "oink") is None
- assert c.get_flow_setting(f, "oink", "foo") == "foo"
- assert len(c.flowsettings) == 1
- c.delete_flow(f)
- del f
- gc.collect()
- assert len(c.flowsettings) == 0
-
-
def test_format_keyvals():
assert common.format_keyvals(
[
@@ -123,17 +34,17 @@ class TestMaster(mastertest.MasterTest):
m = self.mkmaster()
for i in (1, 2, 3):
self.dummy_cycle(m, 1, b"")
- assert len(m.state.flows) == i
+ assert len(m.view) == i
def test_intercept(self):
"""regression test for https://github.com/mitmproxy/mitmproxy/issues/1605"""
m = self.mkmaster(intercept="~b bar")
f = tflow.tflow(req=mitmproxy.test.tutils.treq(content=b"foo"))
m.request(f)
- assert not m.state.flows[0].intercepted
+ assert not m.view[0].intercepted
f = tflow.tflow(req=mitmproxy.test.tutils.treq(content=b"bar"))
m.request(f)
- assert m.state.flows[1].intercepted
+ assert m.view[1].intercepted
f = tflow.tflow(resp=mitmproxy.test.tutils.tresp(content=b"bar"))
m.request(f)
- assert m.state.flows[2].intercepted
+ assert m.view[2].intercepted