summaryrefslogtreecommitdiffstats
path: root/ipalib/plugable.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-08-05 03:21:52 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-08-05 03:21:52 +0000
commitc3bf5ad8579e6f09aba558a68de947b2be398619 (patch)
treefe2ea34541ff5a20d6ca3ef9bba82ea083157d2c /ipalib/plugable.py
parent74f5719078adfcfdf8b98bf97f0828dd150c840d (diff)
downloadfreeipa.git-c3bf5ad8579e6f09aba558a68de947b2be398619.tar.gz
freeipa.git-c3bf5ad8579e6f09aba558a68de947b2be398619.tar.xz
freeipa.git-c3bf5ad8579e6f09aba558a68de947b2be398619.zip
43: Fleshed out new plugable.API class; added corresponding unit tests
Diffstat (limited to 'ipalib/plugable.py')
-rw-r--r--ipalib/plugable.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/ipalib/plugable.py b/ipalib/plugable.py
index f298e97e..32cbe033 100644
--- a/ipalib/plugable.py
+++ b/ipalib/plugable.py
@@ -281,4 +281,13 @@ class Registrar(object):
class API(ReadOnly):
def __init__(self, registrar):
for (base, plugins) in registrar:
- pass
+ ns = NameSpace(self.__plugin_iter(base, plugins))
+ assert not hasattr(self, base.__name__)
+ object.__setattr__(self, base.__name__, ns)
+
+ def __plugin_iter(self, base, plugins):
+ assert issubclass(base.proxy, Proxy)
+ for cls in plugins:
+ plugin = cls(self)
+ assert plugin.api is self
+ yield base.proxy(plugin)