def test_manager_get_plugin_configuration(plugin_configuration): plugins = [ "tests.extensions.sample_plugins.PluginSample", "tests.extensions.sample_plugins.PluginInactive", ] manager = ExtensionsManager(plugins=plugins) plugin = manager.get_plugin("PluginSample") configuration_from_db = PluginConfiguration.objects.get( name="PluginSample") assert plugin.DEFAULT_CONFIGURATION == configuration_from_db.configuration
def test_plugin_add_new_configuration( new_config, new_config_structure, monkeypatch, ): monkeypatch.setattr(PluginInactive, "DEFAULT_ACTIVE", True) monkeypatch.setattr( PluginInactive, "DEFAULT_CONFIGURATION", [new_config], ) config_structure = {"Foo": new_config_structure} monkeypatch.setattr(PluginInactive, "CONFIG_STRUCTURE", config_structure) manager = ExtensionsManager( plugins=["tests.extensions.sample_plugins.PluginInactive"]) plugin = manager.get_plugin("PluginInactive") assert len(plugin.configuration) == 1 assert plugin.configuration[0] == {**new_config, **new_config_structure}
def test_plugin_updates_configuration_shape( new_config, new_config_structure, plugin_configuration, monkeypatch, ): config_structure = PluginSample.CONFIG_STRUCTURE.copy() config_structure["Foo"] = new_config_structure monkeypatch.setattr(PluginSample, "CONFIG_STRUCTURE", config_structure) monkeypatch.setattr( PluginSample, "DEFAULT_CONFIGURATION", plugin_configuration.configuration + [new_config], ) manager = ExtensionsManager( plugins=["tests.extensions.sample_plugins.PluginSample"]) plugin = manager.get_plugin("PluginSample") assert len(plugin.configuration) == 5 assert plugin.configuration[-1] == {**new_config, **new_config_structure}