aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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")