From c062e302e9281e4d8e216595b14fb089ed784b4e Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sat, 3 Dec 2016 11:54:04 +1300 Subject: Add OptManager.subscribe, use it to clean up palettes in console .subscribe lets you subscribe a function to a specified set of options. --- test/mitmproxy/test_optmanager.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'test') diff --git a/test/mitmproxy/test_optmanager.py b/test/mitmproxy/test_optmanager.py index 345512fd..c7808391 100644 --- a/test/mitmproxy/test_optmanager.py +++ b/test/mitmproxy/test_optmanager.py @@ -104,6 +104,29 @@ def test_toggler(): o.toggler("nonexistent") +class Rec(): + def __init__(self): + self.called = None + + def __call__(self, *args, **kwargs): + self.called = (args, kwargs) + + +def test_subscribe(): + o = TO() + r = Rec() + o.subscribe(r, ["two"]) + o.one = "foo" + assert not r.called + o.two = "foo" + assert r.called + + assert len(o.changed.receivers) == 1 + del r + o.two = "bar" + assert len(o.changed.receivers) == 0 + + def test_rollback(): o = TO(one="two") -- cgit v1.2.3