mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-29 19:08:44 +00:00
options: choices for content views and tighten console order spec
Also clean up some leftovers from filter option name change.
This commit is contained in:
parent
22d7c31ea8
commit
43e7b9d68c
@ -300,13 +300,13 @@ class View(collections.Sequence):
|
|||||||
|
|
||||||
# Event handlers
|
# Event handlers
|
||||||
def configure(self, opts, updated):
|
def configure(self, opts, updated):
|
||||||
if "filter" in updated:
|
if "view_filter" in updated:
|
||||||
filt = None
|
filt = None
|
||||||
if opts.filter:
|
if opts.view_filter:
|
||||||
filt = flowfilter.parse(opts.filter)
|
filt = flowfilter.parse(opts.view_filter)
|
||||||
if not filt:
|
if not filt:
|
||||||
raise exceptions.OptionsError(
|
raise exceptions.OptionsError(
|
||||||
"Invalid interception filter: %s" % opts.filter
|
"Invalid interception filter: %s" % opts.view_filter
|
||||||
)
|
)
|
||||||
self.set_filter(filt)
|
self.set_filter(filt)
|
||||||
if "console_order" in updated:
|
if "console_order" in updated:
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
from typing import Optional, Sequence
|
from typing import Optional, Sequence
|
||||||
|
|
||||||
from mitmproxy import optmanager
|
from mitmproxy import optmanager
|
||||||
|
from mitmproxy import contentviews
|
||||||
from mitmproxy.net import tcp
|
from mitmproxy.net import tcp
|
||||||
|
|
||||||
# We redefine these here for now to avoid importing Urwid-related guff on
|
# We redefine these here for now to avoid importing Urwid-related guff on
|
||||||
@ -154,7 +155,8 @@ class Options(optmanager.OptManager):
|
|||||||
)
|
)
|
||||||
self.add_option(
|
self.add_option(
|
||||||
"default_contentview", str, "auto",
|
"default_contentview", str, "auto",
|
||||||
"The default content view mode."
|
"The default content view mode.",
|
||||||
|
choices = [i.name for i in contentviews.views]
|
||||||
)
|
)
|
||||||
self.add_option(
|
self.add_option(
|
||||||
"streamfile", Optional[str], None,
|
"streamfile", Optional[str], None,
|
||||||
@ -390,7 +392,7 @@ class Options(optmanager.OptManager):
|
|||||||
"Console mouse interaction."
|
"Console mouse interaction."
|
||||||
)
|
)
|
||||||
self.add_option(
|
self.add_option(
|
||||||
"console_order", Optional[str], None,
|
"console_order", str, "time",
|
||||||
"Flow sort order.",
|
"Flow sort order.",
|
||||||
choices=view_orders,
|
choices=view_orders,
|
||||||
)
|
)
|
||||||
|
@ -109,7 +109,7 @@ def mitmproxy(opts):
|
|||||||
"See help in mitmproxy for filter expression syntax."
|
"See help in mitmproxy for filter expression syntax."
|
||||||
)
|
)
|
||||||
opts.make_parser(group, "intercept", metavar="FILTER")
|
opts.make_parser(group, "intercept", metavar="FILTER")
|
||||||
opts.make_parser(group, "filter", metavar="FILTER")
|
opts.make_parser(group, "view_filter", metavar="FILTER")
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
|
|
||||||
|
@ -207,7 +207,7 @@ class StatusBar(urwid.WidgetWrap):
|
|||||||
r.append("[")
|
r.append("[")
|
||||||
r.append(("heading_key", "M"))
|
r.append(("heading_key", "M"))
|
||||||
r.append(":%s]" % self.master.options.default_contentview)
|
r.append(":%s]" % self.master.options.default_contentview)
|
||||||
if self.master.options.console_order:
|
if self.master.options.has_changed("console_order"):
|
||||||
r.append("[")
|
r.append("[")
|
||||||
r.append(("heading_key", "o"))
|
r.append(("heading_key", "o"))
|
||||||
r.append(":%s]" % self.master.options.console_order)
|
r.append(":%s]" % self.master.options.console_order)
|
||||||
|
@ -264,7 +264,7 @@ def test_signals():
|
|||||||
def test_focus_follow():
|
def test_focus_follow():
|
||||||
v = view.View()
|
v = view.View()
|
||||||
with taddons.context(options=options.Options()) as tctx:
|
with taddons.context(options=options.Options()) as tctx:
|
||||||
tctx.configure(v, console_focus_follow=True, filter="~m get")
|
tctx.configure(v, console_focus_follow=True, view_filter="~m get")
|
||||||
|
|
||||||
v.add(tft(start=5))
|
v.add(tft(start=5))
|
||||||
assert v.focus.index == 0
|
assert v.focus.index == 0
|
||||||
@ -378,9 +378,9 @@ def test_settings():
|
|||||||
def test_configure():
|
def test_configure():
|
||||||
v = view.View()
|
v = view.View()
|
||||||
with taddons.context(options=options.Options()) as tctx:
|
with taddons.context(options=options.Options()) as tctx:
|
||||||
tctx.configure(v, filter="~q")
|
tctx.configure(v, view_filter="~q")
|
||||||
with pytest.raises(Exception, match="Invalid interception filter"):
|
with pytest.raises(Exception, match="Invalid interception filter"):
|
||||||
tctx.configure(v, filter="~~")
|
tctx.configure(v, view_filter="~~")
|
||||||
|
|
||||||
tctx.configure(v, console_order="method")
|
tctx.configure(v, console_order="method")
|
||||||
with pytest.raises(Exception, match="Unknown flow order"):
|
with pytest.raises(Exception, match="Unknown flow order"):
|
||||||
@ -388,7 +388,5 @@ def test_configure():
|
|||||||
|
|
||||||
tctx.configure(v, console_order_reversed=True)
|
tctx.configure(v, console_order_reversed=True)
|
||||||
|
|
||||||
tctx.configure(v, console_order=None)
|
|
||||||
|
|
||||||
tctx.configure(v, console_focus_follow=True)
|
tctx.configure(v, console_focus_follow=True)
|
||||||
assert v.focus_follow
|
assert v.focus_follow
|
||||||
|
Loading…
Reference in New Issue
Block a user