From 6005ca1d79cde6cb7f8140bd49bf5d3d19703215 Mon Sep 17 00:00:00 2001 From: Nico Date: Wed, 30 Sep 2015 22:41:07 +0200 Subject: [PATCH] Allow broker creator to provide a custom plugin namespace (useful for testing) --- hbmqtt/broker.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/hbmqtt/broker.py b/hbmqtt/broker.py index 2efd06c..211aa3d 100644 --- a/hbmqtt/broker.py +++ b/hbmqtt/broker.py @@ -128,7 +128,7 @@ class BrokerContext(BaseContext): class Broker: states = ['new', 'starting', 'started', 'not_started', 'stopping', 'stopped', 'not_stopped', 'stopped'] - def __init__(self, config=None, loop=None): + def __init__(self, config=None, loop=None, plugin_namespace=None): """ :param config: Example Yaml config @@ -190,7 +190,11 @@ class Broker: # Init plugins manager context = BrokerContext() context.config = self.config - self.plugins_manager = PluginManager('hbmqtt.broker.plugins', context, self._loop) + if plugin_namespace: + namespace = plugin_namespace + else: + namespace = 'hbmqtt.broker.plugins' + self.plugins_manager = PluginManager(plugin_namespace, context, self._loop) def _build_listeners_config(self, broker_config): self.listeners_config = dict() @@ -198,10 +202,9 @@ class Broker: listeners_config = broker_config['listeners'] defaults = listeners_config['default'] for listener in listeners_config: - if listener != 'default': - config = dict(defaults) - config.update(listeners_config[listener]) - self.listeners_config[listener] = config + config = dict(defaults) + config.update(listeners_config[listener]) + self.listeners_config[listener] = config except KeyError as ke: raise BrokerException("Listener config not found invalid: %s" % ke)