From 016d68bfa03eecaf22f6f891c5cf66f4f293d038 Mon Sep 17 00:00:00 2001 From: Brendan Jackman Date: Fri, 6 Oct 2017 17:58:53 +0100 Subject: [PATCH] PluginCache: Improve error message for ill-formed plugin config Currently if you get confused and write a config with something like: energy_measurement: acme_cape Then you get an error when we try to 'iteritems' on the value 'acme_cape'. Instead, explicitly check for this case. --- wa/framework/configuration/plugin_cache.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wa/framework/configuration/plugin_cache.py b/wa/framework/configuration/plugin_cache.py index a031c4d4..8857db12 100644 --- a/wa/framework/configuration/plugin_cache.py +++ b/wa/framework/configuration/plugin_cache.py @@ -83,6 +83,10 @@ class PluginCache(object): msg = 'configuration provided for unknown plugin "{}"' raise ConfigError(msg.format(plugin_name)) + if not hasattr(values, 'iteritems'): + msg = 'Plugin configuration for "{}" not a dictionary ({} is {})' + raise ConfigError(msg.format(plugin_name, repr(values), type(values))) + for name, value in values.iteritems(): if (plugin_name not in GENERIC_CONFIGS and name not in self.get_plugin_parameters(plugin_name)):