aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2016-09-09 10:31:34 +1200
committerAldo Cortesi <aldo@nullcube.com>2016-09-09 10:31:34 +1200
commit715e47e3d4cc16c95d572ccc871cc24417ee358a (patch)
tree0321b07f33c8c1a5eba5f11c4128281a9cd5abbd
parentd4f291a8adfc6bfe7cd7820d9342868874895ad0 (diff)
downloadmitmproxy-715e47e3d4cc16c95d572ccc871cc24417ee358a.tar.gz
mitmproxy-715e47e3d4cc16c95d572ccc871cc24417ee358a.tar.bz2
mitmproxy-715e47e3d4cc16c95d572ccc871cc24417ee358a.zip
Extend addons.Addons with a get method that retrieves an addon by name
-rw-r--r--mitmproxy/addons.py7
-rw-r--r--test/mitmproxy/test_addons.py3
2 files changed, 9 insertions, 1 deletions
diff --git a/mitmproxy/addons.py b/mitmproxy/addons.py
index 329d1215..04d1e905 100644
--- a/mitmproxy/addons.py
+++ b/mitmproxy/addons.py
@@ -4,7 +4,7 @@ import pprint
def _get_name(itm):
- return getattr(itm, "name", itm.__class__.__name__)
+ return getattr(itm, "name", itm.__class__.__name__.lower())
class Addons(object):
@@ -13,6 +13,11 @@ class Addons(object):
self.master = master
master.options.changed.connect(self.options_update)
+ def get(self, name):
+ for i in self.chain:
+ if name == _get_name(i):
+ return i
+
def options_update(self, options, updated):
for i in self.chain:
with self.master.handlecontext():
diff --git a/test/mitmproxy/test_addons.py b/test/mitmproxy/test_addons.py
index a5085ea0..f59f99d6 100644
--- a/test/mitmproxy/test_addons.py
+++ b/test/mitmproxy/test_addons.py
@@ -19,3 +19,6 @@ def test_simple():
a.add(o, TAddon("one"))
assert a.has_addon("one")
assert not a.has_addon("two")
+
+ assert a.get("one")
+ assert not a.get("nonexistent")