Better guard an edge case in plugin config

This commit is contained in:
Oleh Prypin
2022-10-08 15:07:34 +02:00
parent b964e05372
commit aaf819f183
2 changed files with 9 additions and 1 deletions

View File

@@ -946,7 +946,7 @@ class Plugins(OptionallyRequired[plugins.PluginCollection]):
else:
for item in value:
if isinstance(item, dict):
if len(item) > 1:
if len(item) != 1:
raise ValidationError('Invalid Plugins configuration')
name, cfg = item.popitem()
else:

View File

@@ -1812,6 +1812,14 @@ class PluginsTest(TestCase):
with self.expect_error(plugins="Invalid Plugins configuration"):
self.get_config(Schema, cfg)
cfg = {
'plugins': [
{},
],
}
with self.expect_error(plugins="Invalid Plugins configuration"):
self.get_config(Schema, cfg)
def test_plugin_config_not_string_or_dict(self, mock_class) -> None:
class Schema(Config):
plugins = c.Plugins()