From aaf819f183fec9f2bda14449ad9fc875ad830e45 Mon Sep 17 00:00:00 2001 From: Oleh Prypin Date: Sat, 8 Oct 2022 15:07:34 +0200 Subject: [PATCH] Better guard an edge case in plugin config --- mkdocs/config/config_options.py | 2 +- mkdocs/tests/config/config_options_tests.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/mkdocs/config/config_options.py b/mkdocs/config/config_options.py index 18a5ddab..689092ea 100644 --- a/mkdocs/config/config_options.py +++ b/mkdocs/config/config_options.py @@ -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: diff --git a/mkdocs/tests/config/config_options_tests.py b/mkdocs/tests/config/config_options_tests.py index f3319425..34c09673 100644 --- a/mkdocs/tests/config/config_options_tests.py +++ b/mkdocs/tests/config/config_options_tests.py @@ -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()