diff options
author | Aldo Cortesi <aldo@corte.si> | 2017-05-02 12:00:08 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2017-05-02 12:56:27 +1200 |
commit | dcae79e017c5fb267a4091d9584990e75777cc38 (patch) | |
tree | 2442d2393690b70c9c66c924fe308c5ca8e4c37d | |
parent | 4e39d387d374f1f000f9ddf01c799369bfc25ddb (diff) | |
download | mitmproxy-dcae79e017c5fb267a4091d9584990e75777cc38.tar.gz mitmproxy-dcae79e017c5fb267a4091d9584990e75777cc38.tar.bz2 mitmproxy-dcae79e017c5fb267a4091d9584990e75777cc38.zip |
console: various bugs
- Action bar now correctly gets the palette background
- Viewing connection details for a killed flow no longer crashes
- Editing options with selections no longer crashes
-rw-r--r-- | mitmproxy/tools/console/flowdetailview.py | 2 | ||||
-rw-r--r-- | mitmproxy/tools/console/master.py | 3 | ||||
-rw-r--r-- | mitmproxy/tools/console/options.py | 1 | ||||
-rw-r--r-- | mitmproxy/tools/console/statusbar.py | 5 | ||||
-rw-r--r-- | mitmproxy/tools/console/window.py | 3 | ||||
-rw-r--r-- | test/mitmproxy/addons/test_core.py | 2 | ||||
-rw-r--r-- | test/mitmproxy/addons/test_script.py | 2 |
7 files changed, 9 insertions, 9 deletions
diff --git a/mitmproxy/tools/console/flowdetailview.py b/mitmproxy/tools/console/flowdetailview.py index 6bca2a2f..28fe1fbc 100644 --- a/mitmproxy/tools/console/flowdetailview.py +++ b/mitmproxy/tools/console/flowdetailview.py @@ -27,7 +27,7 @@ def flowdetails(state, flow: http.HTTPFlow): text.append(urwid.Text([("head", "Metadata:")])) text.extend(common.format_keyvals(parts, key="key", val="text", indent=4)) - if sc is not None: + if sc is not None and sc.ip_address: text.append(urwid.Text([("head", "Server Connection:")])) parts = [ ["Address", human.format_address(sc.address)], diff --git a/mitmproxy/tools/console/master.py b/mitmproxy/tools/console/master.py index 10b194f0..b88a0354 100644 --- a/mitmproxy/tools/console/master.py +++ b/mitmproxy/tools/console/master.py @@ -27,7 +27,6 @@ from mitmproxy.tools.console import keymap from mitmproxy.tools.console import overlay from mitmproxy.tools.console import palettes from mitmproxy.tools.console import signals -from mitmproxy.tools.console import statusbar from mitmproxy.tools.console import window from mitmproxy import contentviews from mitmproxy.utils import strutils @@ -483,7 +482,6 @@ class ConsoleMaster(master.Master): signal.signal(signal.SIGINT, sigint_handler) - self.ab = None self.window = None def __setattr__(self, name, value): @@ -621,7 +619,6 @@ class ConsoleMaster(master.Master): handle_mouse = self.options.console_mouse, ) - self.ab = statusbar.ActionBar(self) self.window = window.Window(self) self.loop.widget = self.window diff --git a/mitmproxy/tools/console/options.py b/mitmproxy/tools/console/options.py index a359eaf9..fee61fe5 100644 --- a/mitmproxy/tools/console/options.py +++ b/mitmproxy/tools/console/options.py @@ -219,6 +219,7 @@ class OptionsList(urwid.ListBox): elif foc.opt.choices: self.master.overlay( overlay.Chooser( + self.master, foc.opt.name, foc.opt.choices, foc.opt.current(), diff --git a/mitmproxy/tools/console/statusbar.py b/mitmproxy/tools/console/statusbar.py index f1cc4fae..a5db0f4a 100644 --- a/mitmproxy/tools/console/statusbar.py +++ b/mitmproxy/tools/console/statusbar.py @@ -151,7 +151,8 @@ class StatusBar(urwid.WidgetWrap): self.master = master self.helptext = helptext self.ib = urwid.WidgetWrap(urwid.Text("")) - super().__init__(urwid.Pile([self.ib, self.master.ab])) + self.ab = ActionBar(self) + super().__init__(urwid.Pile([self.ib, self.ab])) signals.update_settings.connect(self.sig_update) signals.flowlist_change.connect(self.sig_update) signals.footer_help.connect(self.sig_footer_help) @@ -167,7 +168,7 @@ class StatusBar(urwid.WidgetWrap): self.redraw() def keypress(self, *args, **kwargs): - return self.master.ab.keypress(*args, **kwargs) + return self.ab.keypress(*args, **kwargs) def get_status(self): r = [] diff --git a/mitmproxy/tools/console/window.py b/mitmproxy/tools/console/window.py index 63f189ec..d7038da0 100644 --- a/mitmproxy/tools/console/window.py +++ b/mitmproxy/tools/console/window.py @@ -12,10 +12,11 @@ from mitmproxy.tools.console import grideditor class Window(urwid.Frame): def __init__(self, master): + self.statusbar = statusbar.StatusBar(master, "") super().__init__( None, header = None, - footer = statusbar.StatusBar(master, ""), + footer = urwid.AttrWrap(self.statusbar, "background") ) self.master = master self.primary_stack = [] diff --git a/test/mitmproxy/addons/test_core.py b/test/mitmproxy/addons/test_core.py index 3c3c7bf7..c132d80a 100644 --- a/test/mitmproxy/addons/test_core.py +++ b/test/mitmproxy/addons/test_core.py @@ -150,7 +150,7 @@ def test_options(tmpdir): sa.options_save(p) with pytest.raises(exceptions.CommandError): - sa.options_save("/nonexistent") + sa.options_save("/") sa.options_reset() assert tctx.options.stickyauth is None diff --git a/test/mitmproxy/addons/test_script.py b/test/mitmproxy/addons/test_script.py index a3df1fcf..dd5349cb 100644 --- a/test/mitmproxy/addons/test_script.py +++ b/test/mitmproxy/addons/test_script.py @@ -152,7 +152,7 @@ class TestScriptLoader: sc = script.ScriptLoader() with taddons.context(): with pytest.raises(exceptions.CommandError): - sc.script_run([tflow.tflow(resp=True)], "/nonexistent") + sc.script_run([tflow.tflow(resp=True)], "/") def test_simple(self): sc = script.ScriptLoader() |