diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2016-10-30 15:45:36 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2016-10-30 15:45:36 +1300 |
commit | 6b6c44551ae32ea1ed9e31f55b85a8cffe266d05 (patch) | |
tree | 1319246f577685bf3e9ce73127f5d63c9e42ebb4 /test | |
parent | 2b76db1272c1a37310e69852805fbeccccbe0032 (diff) | |
download | mitmproxy-6b6c44551ae32ea1ed9e31f55b85a8cffe266d05.tar.gz mitmproxy-6b6c44551ae32ea1ed9e31f55b85a8cffe266d05.tar.bz2 mitmproxy-6b6c44551ae32ea1ed9e31f55b85a8cffe266d05.zip |
addons.view: Add first-class support for marking
Marking now works differently - it's no longer just another filter, it's
applied in addition to the filter. This means you can apply a filter, mark some
flows, and then toggle between marked and unmarked flows matching the filter.
I'm leaving the filter for marked flows intact - it will come in handy in other
situations.
Diffstat (limited to 'test')
-rw-r--r-- | test/mitmproxy/addons/test_view.py | 8 | ||||
-rw-r--r-- | test/mitmproxy/console/test_master.py | 97 |
2 files changed, 12 insertions, 93 deletions
diff --git a/test/mitmproxy/addons/test_view.py b/test/mitmproxy/addons/test_view.py index e8d6fb07..c7a9821a 100644 --- a/test/mitmproxy/addons/test_view.py +++ b/test/mitmproxy/addons/test_view.py @@ -58,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() 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 |