diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-05 03:21:52 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-05 03:21:52 +0000 |
commit | c3bf5ad8579e6f09aba558a68de947b2be398619 (patch) | |
tree | fe2ea34541ff5a20d6ca3ef9bba82ea083157d2c /ipalib/plugable.py | |
parent | 74f5719078adfcfdf8b98bf97f0828dd150c840d (diff) | |
download | freeipa.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.py | 11 |
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) |